gpt4 book ai didi

c# - JWT token 身份验证失败,并显示消息 "PII is hidden"

转载 作者:行者123 更新时间:2023-12-01 22:41:28 29 4
gpt4 key购买 nike

在我的 .net core 2.2 微服务中,我尝试从 JWT token 中提取声明以进行一些授权。身份验证是在系统的另一部分完成的,因此我此时不需要执行此操作。

我在 Startup.cs 中使用此代码:

  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
var signingKey = Encoding.UTF8.GetBytes("SECRET_KEY");
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
ValidateAudience = false,
IssuerSigningKey = new SymmetricSecurityKey(signingKey)
};
});

在 Controller 上我有以下代码:

    [Authorize]
[HttpPost]
public async Task<ActionResult<CreateResponse>> Create()
{
var userIdClaim = HttpContext.User.Claims.Where(x => x.Type == "empId").SingleOrDefault();
return Ok($"Your User ID is {userIdClaim.Value} and you can create invoices!");
}

我总是收到此错误消息和“未经授权”响应:

Microsoft.IdentityModel.Tokens.SecurityTokenInvalidSignatureException: IDX10503: Signature validation failed. Keys tried: '[PII is hidden]'. Exceptions caught: '[PII is hidden]'. token: '[PII is hidden]'.

最佳答案

通过在Startup类的Configure()中添加以下内容,您可以看到开发中隐藏的细节:

if (env.IsDevelopment())
{
IdentityModelEventSource.ShowPII = true;
}

获得完整消息后,请检查 token 所使用的 key 是否正确。

关于c# - JWT token 身份验证失败,并显示消息 "PII is hidden",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55300231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com