pan*_*nis 2 .net c# jwt asp.net-core
我有以下代码,当我调用 api 端点时出现错误 Bearer was not authenticated. Failure message: IDX10500: Signature validation failed. No security keys were provided to validate the signature.
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(cfg =>
{
cfg.RequireHttpsMetadata = false;
cfg.TokenValidationParameters = new TokenValidationParameters
{
ValidateAudience = false,
ValidateIssuer = false,
ValidateIssuerSigningKey = false
};
});
Run Code Online (Sandbox Code Playgroud)
如果我设置了,为什么会发生这种情况ValidateIssuerSigningKey=false?
Nan*_* Yu 10
请参考线程:https : //github.com/aspnet/Security/issues/1741
您可以将委托 TokenValidationParameters.SignatureValidator 设置为仅返回 JwtSecurityToken。
目前,您不能仅设置ValidateIssuerSigningKey为 false 以跳过签名验证。作为一种解决方法,您可以将委托 TokenValidationParameters.SignatureValidator 设置为仅返回 JwtSecurityToken :
ValidateIssuerSigningKey = false,
SignatureValidator = delegate (string token, TokenValidationParameters parameters)
{
var jwt = new JwtSecurityToken(token);
return jwt;
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1224 次 |
| 最近记录: |