- 生成 JWT Token: 在 .NET 6 中,可以使用 System.IdentityModel.Tokens.Jwt 库来生成 JWT Token。下面是一个简单的示例代码:
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using Microsoft.IdentityModel.Tokens;
public string GenerateJwtToken(string secretKey, string issuer, string audience, int expiryInMinutes)
{
var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey));
var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
var claims = new[]
{
new Claim(JwtRegisteredClaimNames.Sub, "user123"),
new Claim(JwtRegisteredClaimNames.Email, "user123@example.com"),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
};
var token = new JwtSecurityToken(
issuer: issuer,
audience: audience,
claims: claims,
expires: DateTime.UtcNow.AddMinutes(expiryInMinutes),
signingCredentials: credentials);
return new JwtSecurityTokenHandler().WriteToken(token);
}
- 解密 JWT Token: 在 .NET 6 中,可以使用 System.IdentityModel.Tokens.Jwt 库来解密 JWT Token。下面是一个简单的示例代码:
using System.IdentityModel.Tokens.Jwt;
using Microsoft.IdentityModel.Tokens;
public bool ValidateJwtToken(string jwtToken, string secretKey, string issuer, string audience)
{
try
{
var tokenHandler = new JwtSecurityTokenHandler();
var validationParameters = new TokenValidationParameters
{
ValidIssuer = issuer,
ValidAudience = audience,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey))
};
SecurityToken validatedToken;
var claimsPrincipal = tokenHandler.ValidateToken(jwtToken, validationParameters, out validatedToken);
return true;
}
catch
{
return false;
}
}
以上代码演示了如何生成和验证 JWT Token。在生成时,我们需要指定密钥、签发人、受众、有效期和声明等信息。在验证时,我们需要指定相同的密钥、签发人和受众,并使用相应的参数来验证令牌。如果解密成功,则返回 true;否则返回 false。




