问得好,我上周也遇到同样的问题,最后用同样的方法解决了
   
    JWTAccessToken
   
   .
  
  
   关键在于添加
   
   
   在生成可在服务器中检索的访问令牌时,作为声明的身份验证用户。
  
  
   
    添加对访问令牌的声明
   
  
  
  
  List<Claim> claims = new List<Claim>();
claims.Add(new Claim("UserId", user.Id.ToString()));
  
   然后生成一个访问令牌。
  
  SecurityToken token = new JwtSecurityToken(
                        issuer: {YOUR_ISSUER},
                        audience: {YOUR_AUDIENCE},
                        claims: claims,
                        notBefore: DateTime.UtcNow,
                        expires: DateTime.UtcNow.AddMinutes(60),
                        signingCredentials: credentials
                     );
  
   我假设你已经知道如何执行步骤之前,达到这最后一代代币扣除你的技能
   
    oAuth
   
   和
   
    JWT
   
   在你的问题上面。
  
  
   
    从访问令牌检索声明
   
  
  
   
   
   
    RequestContext
   
  
  public static string GetUserId(this ControllerBase controller)
{
    string securityKey = "{YOUR_SECURITY_KEY}";
    SymmetricSecurityKey key = new SymmetricSecurityKey(new UTF8Encoding().GetBytes(securityKey));
    JwtSecurityTokenHandler token_handler = new JwtSecurityTokenHandler();
    var tokenValidationParams = new TokenValidationParameters
    {
        ValidateAudience = false,
        ValidateIssuer = false,
        ValidateIssuerSigningKey = true,
        IssuerSigningKey = key,
        ValidateLifetime = false
    };
    string bearer = controller.HttpContext.Request.Headers["Authorization"].ToString().Replace("Bearer", string.Empty).Trim(' ');
    List<Claim> claims = token_handler.ValidateToken(bearer, tokenValidationParams, out SecurityToken token).Claims.ToList();
    Claim userClaim = claims.FirstOrDefault(x => x.Type == "UserId");
    if(userClaim != null)
    {
        return userClaim.Value;
    }
    else
    {
        throw new Exception("Invalid AccessToken. UserId claim not found");
    }
}
  
   
    如何使用
   
  
  
   现在让我们用这个来得到
   
    用户ID
   
   在我们的任何控制器中:
  
  [Authorize]
public class ExampleController : Controller
{
    public IActionResult Index()
    {
        string userId = this.GetUserId();
        // --> continuing code goes here.
    }
}