通过 JWT 基于 Token 实现登录认证
# 通过 JWT 基于 Token 实现登录认证
JWT 是带签名的声明载体,不等于加密。认证服务签发短期访问令牌,资源服务验证签名、算法、签发者、受众和时间声明。
type Claims struct {
Subject string `json:"sub"`
Roles []string `json:"roles"`
Expires int64 `json:"exp"`
}
1
2
3
4
5
2
3
4
5
服务端必须固定允许的签名算法,不能信任令牌头任意选择算法。密钥应通过密钥管理系统轮换,日志中不得记录完整 Token。需要撤销和长期会话时,可组合短期访问令牌与服务端保存的刷新令牌,而不是签发长期不可撤销 JWT。