Documentation
¶
Index ¶
- Variables
- func GenerateToken(userID uint, username, role, userType string) (string, error)
- func GenerateTokenWithCustomExpiry(userID uint, username, role, userType string, expireSeconds int) (string, error)
- func GetJTI(tokenString string) (string, error)
- func InvalidateToken(tokenString string) error
- func InvalidateTokenByID(jti string, expiry time.Time) error
- func IsTokenRevoked(jti string) bool
- func RefreshToken(tokenString string) (string, error)
- type Claims
- type TokenBlacklist
Constants ¶
This section is empty.
Variables ¶
View Source
var ( //ErrTokenExpired 令牌已过期 ErrTokenExpired = errors.New("令牌已过期") //ErrTokenInvalid 令牌无效 ErrTokenInvalid = errors.New("令牌无效") //ErrTokenMalformed 令牌格式错误 ErrTokenMalformed = errors.New("令牌格式错误") //ErrTokenNotValidYet 令牌尚未生效 ErrTokenNotValidYet = errors.New("令牌尚未生效") //ErrTokenRevoked 令牌已被撤销 ErrTokenRevoked = errors.New("令牌已被撤销") )
Functions ¶
func GenerateToken ¶
GenerateToken 生成 JWT Token
func GenerateTokenWithCustomExpiry ¶
func GenerateTokenWithCustomExpiry(userID uint, username, role, userType string, expireSeconds int) (string, error)
GenerateTokenWithCustomExpiry 生成带自定义过期时间的 Token
func InvalidateToken ¶
InvalidateToken 使 Token 失效(加入黑名单)
func InvalidateTokenByID ¶
InvalidateTokenByID 直接通过 JTI 使 Token 失效 参数: jti JWT ID,expiry 过期时间
Types ¶
type Claims ¶
type Claims struct {
UserID uint `json:"user_id"`
Username string `json:"username"`
Role string `json:"role"` // admin 或 staff
UserType string `json:"user_type"` // super_admin, admin, staff
JTI string `json:"jti"` // JWT ID(唯一标识,用于黑名单)
jwt.RegisteredClaims
}
Claims JWT 声明
func GetClaimsFromToken ¶
GetClaimsFromToken 获取 Token 的 Claims(不验证过期) 用于获取已过期 Token 的信息
type TokenBlacklist ¶
type TokenBlacklist struct{}
TokenBlacklist Token 黑名单管理(使用 JTI 优化)
func (*TokenBlacklist) Add ¶
func (tb *TokenBlacklist) Add(jti string, expiry time.Time) error
Add 将 Token 的 JTI 加入黑名单 参数: jti JWT ID,expiry Token 过期时间
func (*TokenBlacklist) IsBlacklisted ¶
func (tb *TokenBlacklist) IsBlacklisted(jti string) bool
IsBlacklisted 检查 JTI 是否在黑名单中
Click to show internal directories.
Click to hide internal directories.