BaseController.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using System.Collections.Generic;
  4. using TEAMModelOS.SDK.Extension.JwtAuth.JwtHelper;
  5. using TEAMModelOS.SDK.Extension.JwtAuth.Models;
  6. using TEAMModelOS.SDK.Context.Constant.Common;
  7. using System.Security.Claims;
  8. namespace TEAMModelOS.API.Controllers
  9. {
  10. public class BaseController : Controller
  11. {
  12. public List<string> GetLoginUser(string claimType)
  13. {
  14. var tokenHeader = "";
  15. HttpRequest request = HttpContext.Request;
  16. if (request.Headers.ContainsKey(Constants.AUTHORIZATION))
  17. {
  18. tokenHeader = request.Headers[Constants.AUTHORIZATION];
  19. //tokenHeader = tokenHeader.ToString().Substring("Bearer ".Length).Trim();
  20. tokenHeader = tokenHeader.Replace("Bearer ", "");
  21. }
  22. if (request.Query.ContainsKey(Constants.ACCESS_TOKEN))
  23. {
  24. tokenHeader = request.Query[Constants.ACCESS_TOKEN];
  25. tokenHeader = tokenHeader.Trim();
  26. }
  27. if (string.IsNullOrEmpty(tokenHeader))
  28. {
  29. return null;
  30. }
  31. ClaimModel claimModel = JwtHelper.SerializeJWT(tokenHeader);
  32. claimModel.Claim.TryGetValue(claimType, out var claimValue);
  33. List<string> claimValues = new List<string>();
  34. foreach (Claim claim in claimModel.Claims)
  35. {
  36. if (claim.Type.Equals(claimType))
  37. {
  38. claimValues.Add(claim.Value);
  39. }
  40. }
  41. return claimValues;
  42. }
  43. }
  44. }