【发布时间】:2020-06-27 18:22:44
【问题描述】:
我的 JWT 没有得到验证,因为颁发者声明失败,我不知道为什么 创建令牌如下所示:
var key = Encoding.UTF8.GetBytes(_config["JWT:Secret"]);
var signingCredentials = new SigningCredentials(
new SymmetricSecurityKey(key),
SecurityAlgorithms.HmacSha256Signature);
var token = new JwtSecurityToken(
issuer: _config["JWT:Issuer"],
claims: claims,
notBefore: DateTime.Now,
expires: DateTime.Now.AddMinutes(20),
signingCredentials: signingCredentials
);
并在我的 Startup.cs 文件中验证令牌:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
{
options.IncludeErrorDetails = true;
options.RequireHttpsMetadata = false;
options.ClaimsIssuer = Configuration["JWT:Issuer"];
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(Configuration["JWT:Secret"])),
// works when set to false
ValidateIssuer = true,
ValidateAudience = false,
ValidateLifetime = true
};
});
那么为什么会出现这个错误:
Bearer error="invalid_token", error_description="发行者'LoggerApp'无效"
注意:_config 和 Configuration 是同一个依赖
【问题讨论】:
标签: asp.net-core jwt