如何在OnAuthorization()方法上获取令牌详细信息,例如访问令牌,访问令牌到期时间和刷新令牌等。

时间:2019-05-27 13:27:49

标签: asp.net-core-webapi

我想弹出一个逻辑,如果访问令牌过期,则在 ASP.NET WEB API核心中的onAuthorization(AuthorizationFilterContext上下文)方法上生成刷新令牌。

但是我无法找到一种方法来获取令牌详细信息。基本上如何获取令牌详细信息,例如到期,从 AuthorizationFilterContext 刷新令牌。

public void OnAuthorization(AuthorizationFilterContext context)
{
    var user = context.HttpContext.User;
    if (!user.Identity.IsAuthenticated)
    {
        var test = context.;
        ..code to get refresh token...
    }
}

1 个答案:

答案 0 :(得分:0)

对于令牌认证,您可以从标头中检索令牌,然后对令牌进行解码。

请尝试以下代码:

public void OnAuthorization(AuthorizationFilterContext context)
{
    //var token = context.HttpContext.GetTokenAsync("access_token").GetAwaiter().GetResult();
    var token = context.HttpContext.Request.Headers["Authorization"].FirstOrDefault().Split(" ")[1];
    var handler = new JwtSecurityTokenHandler();
    var jsonToken = handler.ReadToken(token);
    var tokenS = handler.ReadToken(token) as JwtSecurityToken;
}