ASP.NET Core 中的 JWT 授权问题

问题描述 投票:0回答:0

我正在使用值为

Authorization
Bearer <encoded jwt>
标头将 JWT 发送到我的端点。这是 JWT 的有效载荷:

{
  "sub": "1",
  "email": "[email protected]",
  "jti": "4dabc47a-c524-4f23-b271-420235822d3d",
  "role": "admin",
  "exp": 1682255987,
  "iss": "http://localhost:5000",
  "aud": "http://localhost:5000"
}

但是,当我发出请求时,我收到了一个

403 Forbidden
响应,而不是预期的
201 Created
。这是我在控制器中的端点的代码:

[Authorize("admin")]
[HttpPost]
public async Task<IActionResult> Post([FromBody] ExampleRequest request)
{
    // actual code returning Created()
}

Program.cs 中的授权配置:

builder.Services.AddAuthorization(options =>
    options.AddPolicy("admin", policy =>
        policy.RequireClaim("role", "admin")));

我确定令牌没有过期。响应标头不包含任何有用的内容。我已将授权中间件添加到应用程序(

app.UseAuthorization();
)。有人可以告诉我我做错了什么吗?

我相信我包含了所有必要的细节,但这里是source code如果你想检查它。

谢谢

asp.net-core jwt authorization
© www.soinside.com 2019 - 2024. All rights reserved.