在 Web 应用开发中,用户登录状态的管理至关重要。为了避免用户频繁遇到登录过期的问题,我们可以通过实现 JWT(JSON Web Token)刷新机制来提升用户体验
推荐: 使用 Refresh Token(双 Token 机制)
1. 生成和使用双 Token
通常会生成两种 Token:访问 Token (Access Token) 和 刷新 Token (Refresh Token)。
- • 访问 Token:用于客户端与服务器之间的身份验证,有效期较短(例如 30 分钟),以提高安全性。
- • 刷新 Token:用于获取新的访问 Token,有效期较长(例如 7 天),存储在客户端 。
Tokenservice.cs:
// 生成 JWT Access Token 和 Refresh Token
public (string AccessToken, string RefreshToken) GenerateTokens(string userId, string userName)
{
var tokenHandler = new JwtSecurityTokenHandler();
var key = Encoding.ASCII.GetBytes(_configuration["JwtSettings:Secret"]);
// 生成 Access Token
var accessTokenDescriptor = new SecurityTokenDescriptor
{
Subject