jwt

package
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 22, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

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

func GenerateToken(userID uint, username, role, userType string) (string, error)

GenerateToken 生成 JWT Token

func GenerateTokenWithCustomExpiry

func GenerateTokenWithCustomExpiry(userID uint, username, role, userType string, expireSeconds int) (string, error)

GenerateTokenWithCustomExpiry 生成带自定义过期时间的 Token

func GetJTI

func GetJTI(tokenString string) (string, error)

GetJTI 从 Token 中提取 JTI(不验证签名) 用于需要在验证前获取 JTI 的场景

func InvalidateToken

func InvalidateToken(tokenString string) error

InvalidateToken 使 Token 失效(加入黑名单)

func InvalidateTokenByID

func InvalidateTokenByID(jti string, expiry time.Time) error

InvalidateTokenByID 直接通过 JTI 使 Token 失效 参数: jti JWT ID,expiry 过期时间

func IsTokenRevoked

func IsTokenRevoked(jti string) bool

IsTokenRevoked 检查 Token 是否被撤销(通过 JTI)

func RefreshToken

func RefreshToken(tokenString string) (string, error)

RefreshToken 刷新 Token

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

func GetClaimsFromToken(tokenString string) (*Claims, error)

GetClaimsFromToken 获取 Token 的 Claims(不验证过期) 用于获取已过期 Token 的信息

func ParseToken

func ParseToken(tokenString string) (*Claims, error)

ParseToken 解析 JWT 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 是否在黑名单中

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL