❤️ 关注 Furion 微信公众号有惊喜哦!
🫠 遇到问题了
Skip to main content
⭐️ 开通 VIP 服务仅需 499 元/年,尊享 365 天项目无忧23 立即开通23 ⭐️
特别赞助

14. JWTEncryption 静态类

📝 模块更新日志
  • 问题修复

    •   JWTEncryption.GetJWTSettings() 独立使用时无法获取自定义配置 4.9.1.4 ⏱️2023.11.18 c045e08

14.1 生成 Token

// 读取配置信息生成 Token
var token = JWTEncryption.Encrypt(new Dictionary<string, object> { { "UserId", 1 } });

// 配置 Token 过期时间
var token = JWTEncryption.Encrypt(new Dictionary<string, object> { { "UserId", 1 } }, 20);

// 配置 Token 密钥
var token = JWTEncryption.Encrypt("monksoul@outlook.com", new Dictionary<string, object> { { "UserId", 1 } });

// 配置算法
var token = JWTEncryption.Encrypt("monksoul@outlook.com", new Dictionary<string, object> { { "UserId", 1 } }, SecurityAlgorithms.HmacSha256);

14.2 生成刷新 Token

var refreshToken = JWTEncryption.GenerateRefreshToken("token", 43200);

14.3 根据过期 Token 交换新 Token

var newToken = JWTEncryption.Exchange("过期 token", "与之匹配的刷新 token", [新的token过期时间], [容错值]);

14.4 授权处理程序自动刷新 Token

JWTEncryption.AutoRefreshToken(context, httpContext);

14.5 验证 Token 有效性

var (isValid, tokenData, validationResult) = JWTEncryption.Validate("token");

14.6 验证请求中 Token 有效性

var isValid = JWTEncryption.ValidateJwtBearerToken(httpContext, out tokenInfo);

14.7 读取 Token 信息(不含验证)

var tokenInfo = JWTEncryption.ReadJwtToken("token");

// 3.8.2+ 之后支持更强大的读取
var securityToken = JWTEncryption.SecurityReadJwtToken("token");