【问题标题】:How to get token details like access token,access token expiry time and refresh token etc. on OnAuthorization() method如何在 OnAuthorization() 方法上获取访问令牌、访问令牌到期时间和刷新令牌等令牌详细信息
【发布时间】:2019-05-28 10:05:14
【问题描述】:

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

但我无法找到获取令牌详细信息的方法。基本上如何从 AuthorizationFilterContext 获取令牌详细信息,如过期、刷新令牌。

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

【问题讨论】:

  • 你是如何实现令牌认证的?您是否使用标头 access_tokenBearer 令牌?
  • 授权中的不记名令牌

标签: asp.net-core-webapi


【解决方案1】:

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

试试下面的代码:

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;
}

【讨论】:

  • 在读取令牌时抛出异常,我正在使用 ASOS 创建令牌。
  • @SandeepRasgotra ASOS 是什么?与我们分享创建令牌的代码。
  • 我认为是OAuth认证方案。
  • 是OpenID连接服务器Token(ASOS)。
猜你喜欢
  • 1970-01-01
  • 2020-03-10
  • 2021-08-25
  • 2015-07-19
  • 2020-02-26
  • 2019-09-09
  • 1970-01-01
  • 2022-10-13
相关资源
最近更新 更多