在C#中,使用System.IdentityModel.Tokens.Jwt
库创建JWT时,可以通过设置 expiration
属性来设置有效期。以下是一个示例:
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;
public class JwtTokenBuilder
{
public static string CreateJwtToken(string secretKey, string issuer, string audience, int expirationMinutes)
{
var claims = new[]
{
new Claim(ClaimTypes.Name, "John Doe"),
new Claim(ClaimTypes.Email, "john.doe@example.com")
};
var key = Encoding.UTF8.GetBytes(secretKey);
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(claims),
Expires = DateTime.UtcNow.AddMinutes(expirationMinutes),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
};
var token = new JwtSecurityToken(
issuer,
audience,
tokenDescriptor.Claims,
tokenDescriptor.Expires,
tokenDescriptor.SigningCredentials);
return new JwtSecurityTokenHandler().WriteToken(token);
}
}
在这个示例中,CreateJwtToken
方法接受以下参数:
secretKey
:用于签名和验证JWT的密钥。issuer
:JWT的发行者。audience
:JWT的接收者。expirationMinutes
:JWT的有效期(以分钟为单位)。在创建JwtSecurityTokenDescriptor
对象时,通过设置Expires
属性来定义JWT的有效期。在这个例子中,我们将有效期设置为当前时间加上expirationMinutes
指定的分钟数。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: C# BigDecimal能否自定义精度