asp core6 jwt解析token
时间: 2023-11-26 21:53:24 浏览: 77
在 ASP.NET Core 6 中解析 JWT Token 有多种方式,以下是其中一种简单的方法:
1. 安装 Microsoft.AspNetCore.Authentication.JwtBearer NuGet 包。
2. 在 ConfigureServices 方法中配置 JwtBearer 服务:
```csharp
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = "your-issuer",
ValidAudience = "your-audience",
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("your-secret-key"))
};
});
```
3. 在 Configure 方法中启用身份验证中间件:
```csharp
app.UseAuthentication();
```
4. 在需要验证 Token 的控制器或方法上加上 [Authorize] 特性。
5. 在控制器或方法中,通过 HttpContext.User.Claims 属性获取 Token 中的声明信息。
```csharp
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
var userId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Sub)?.Value;
// do something with userId
return Ok();
}
}
```
以上代码假设 JWT Token 中包含了 "sub" 声明字段,表示用户 ID。你需要将 "your-issuer"、"your-audience" 和 "your-secret-key" 替换成你自己的实际值。
阅读全文