我正在使用ASOS(Asp.net.OpenIDConnect.Server)并使用承载身份验证。
我需要检查令牌的到期时间并进行更新。
无法解码访问令牌。可以请任何人分享完成它的方法。
答案 0 :(得分:0)
您可以使用源自JwtSecurityTokenHandler
的{{1}}:
System.IdentityModel.Tokens.Jwt
更新:
如果您引用的是Opaque令牌,则该令牌由授权服务器使用ASP.NET Core数据保护堆栈进行加密和签名。然后,您正在使用AspNet.Security.OAuth.Validation
middleware或introspection
middleware。对于AspNet.Security.OAuth.Validation中间件,我认为您可以检查var token = "YourToken";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(token) as JwtSecurityToken;
var expire= jsonToken.Claims.First(claim => claim.Type == "exp").Value;
之类的声明,例如OAuthValidationEvents
事件。
如果您担心访问令牌的过期令牌。推荐的方法是,如果令牌过期,则使用刷新令牌来发行新的访问令牌。
可以使用OnCreateTicket
属性从选项中全局设置刷新令牌的默认到期日期。如果您不提供自己的寿命,则有效期为14天。
请注意,默认情况下也会启用滑动到期,这意味着您每次发出新的RefreshTokenLifetime
请求时都会获得一个新的刷新令牌(有效期为14天)。您可以通过将grant_type=refresh_token
n设置为false来禁用滑动到期。