Vac*_*ano 5 c# .net-core asp.net-core asp.net-core-3.1
目前,对于 ASP.NET Core MVC 应用程序的每次调用,我都会在OnValidatePrincipalcookie 的情况下执行以下操作:
id_token通过调用 来获取cookie GetTokenValue。JwtSecurityTokenHandler的 ValidateToken 将 token 转为 json。ValidTo从 json 中获取属性。对我来说,每次通话都这样做似乎有点过分了。我想知道是否有什么办法可以将 ValidTo 值存储在 cookie 本身中。这样我就不必解析 json 来检查每次调用是否过期。
有没有办法让我存储id_token' ValidTo,这样像这样的调用就可以给我过期时间: GetTokenValue("id_token_valid_to")?
检查此链接: https://www.c-sharpcorner.com/article/jwt-json-web-token-authentication-in-asp-net-core/
但简而言之,您必须在启动文件中添加如下内容:
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKey = key,
ValidateIssuerSigningKey = true,
ValidateLifetime = true,
ValidateIssuer = false,
ValidAudience =Configuration["Tokens:Audience"] ,
ValidateAudience = true
};
});
Run Code Online (Sandbox Code Playgroud)
之后,您可以在基本控制器或授权过滤器中检查 User.Identity.IsAuthenticated 。如果令牌已过期,则这是错误的。在此之后,如果需要,您可以设置到期日期。
| 归档时间: |
|
| 查看次数: |
16058 次 |
| 最近记录: |