【发布时间】:2020-08-27 19:11:43
【问题描述】:
我正在尝试在某些应用程序中配置身份验证,该应用程序将使用来自另一个系统的登录验证。基本上,我得到一个带有用户信息的令牌,我必须将它映射到我的数据库,因为它已经通过了用户身份验证。我们正在使用 jwt 令牌来做到这一点。
那么问题来了:
我得到的令牌没有“iat”字段,AspNetCore 似乎拒绝没有该字段的令牌。
有没有办法配置身份验证以忽略该字段?
这是令牌结构:
令牌 - 标题
{
"alg": "HS512"
}
代币 - 正文
{
"sub": [mysub],
"user": { ... },
"exp": [timestamp]
}
这是配置:
...
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
ValidateIssuerSigningKey = false,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
...
【问题讨论】:
标签: c# asp.net-core authentication jwt