.NET Core 6.0 JWT Token 设置有效期 简介 在 .NET Core 6.0 中,JSON Web Token(JWT)是一种常用的身份验证和授权机制。JWT 是一种基于 token 的认证方式,它由三部分组成:头部、负载和签名。其中
.NET Core 6.0 JWT Token 设置有效期
简介
在 .NET Core 6.0 中,JSON Web Token(JWT)是一种常用的身份验证和授权机制。JWT 是一种基于 token 的认证方式,它由三部分组成:头部、负载和签名。其中,负载部分包含了一些有关用户的信息,比如用户 ID、角色等。在使用 JWT 进行身份认证时,我们需要为 JWT 设置有效期,以保证安全性。
本文将介绍在 .NET Core 6.0 中如何设置 JWT Token 的有效期,包括整个流程、每一步需要做什么以及需要使用的代码。
流程概述
下面是设置 JWT Token 有效期的流程概述:
接下来,我们将详细介绍每一步所需的具体操作和代码。
步骤一:定义 Token 配置
首先,我们需要在应用程序的配置文件中定义 JWT Token 的相关配置。在 appsettings.json 文件(或 appsettings.Development.json 文件)中添加以下配置:
{
"JwtSettings": {
"SecretKey": "your-secret-key",
"Issuer": "your-issuer",
"Audience": "your-audience",
"ExpirationMinutes": 30
}
}
SecretKey
:用于加密和解密 Token 的密钥,可以是一个随机生成的字符串。Issuer
:发行者的名称,用于识别发行者。Audience
:接收者的名称,用于识别接收者。ExpirationMinutes
:Token 的有效期,单位为分钟。
步骤二:生成 Token
在用户登录成功后,我们需要根据用户信息生成 JWT Token。以下是生成 Token 的代码示例:
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Tokens;
public class TokenService
{
private readonly IConfiguration _config;
public TokenService(IConfiguration config)
{
_config = config;
}
public string GenerateToken(User user)
{
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_config["JwtSettings:SecretKey"]);
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new Claim[]
{
new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
new Claim(ClaimTypes.Name, user.Username)
}),
Expires = DateTime.UtcNow.AddMinutes(int.Parse(_config["JwtSettings:ExpirationMinutes"])),
Issuer = _config["JwtSettings:Issuer"],
Audience = _config["JwtSettings:Audience"],
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = tokenHandler.CreateToken(tokenDescriptor);
return tokenHandler.WriteToken(token);
}
}
在上述代码中,我们使用了 JwtSecurityTokenHandler
类来生成 JWT Token。其中,SecurityTokenDescriptor
类用于设置 Token 的各种属性,包括过期时间、发行者、接收者等。注意,在设置过期时间时,我们使用了配置文件中定义的 ExpirationMinutes
值。
步骤三:设置有效期
为生成的 Token 设置有效期是保证安全性的重要步骤。在上述的代码示例中,我们已经为 Token 设置了过期时间,即 Expires
属性。
步骤四:验证 Token
在接收到请求时,我们需要验证 Token 的有效性。以下是验证 Token 的代码示例:
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.IdentityModel.Tokens;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// ...
var key = Encoding.ASCII.GetBytes(Configuration["JwtSettings:SecretKey"]);
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true
【文章转自 盐城网页制作公司 http://www.1234xp.com/yancheng.html 处的文章,转载请说明出处】