jwtX2

package
v2.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package jwtX2 提供基于 JWT 的认证中间件,支持多设备管理和会话控制。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type JwtHandlerx

type JwtHandlerx interface {
	// SetToken 登录时设置长短 Token
	SetToken(ctx *gin.Context, userId int64, name string, ssid string) (*UserClaims, error)
	// ExtractToken 从 Authorization: Bearer <token> 中提取 token
	ExtractToken(ctx *gin.Context) string
	// VerifyToken 验证 Access Token(短 Token)
	VerifyToken(ctx *gin.Context) (*UserClaims, error)
	// LongVerifyToken 验证 Refresh Token(长 Token)
	LongVerifyToken(ctx *gin.Context) (*UserClaims, error)
	// RefreshToken 刷新 Token,可选新 ssid(若为空则复用原 ssid)
	RefreshToken(ctx *gin.Context, newSsid string) (*UserClaims, error)
	// DeleteToken 退出登录:仅删除当前会话 Token
	DeleteToken(ctx *gin.Context) (*UserClaims, error)
}

func MustNewJwtxMiddlewareGinx

func MustNewJwtxMiddlewareGinx(cache redis.Cmdable, jwtConf *JwtxMiddlewareGinxConfig) JwtHandlerx

MustNewJwtxMiddlewareGinx 创建 JWT 中间件,配置错误时 panic Deprecated: 推荐使用 NewJwtxMiddlewareGinx 并处理返回的 error

func NewJwtxMiddlewareGinx

func NewJwtxMiddlewareGinx(cache redis.Cmdable, jwtConf *JwtxMiddlewareGinxConfig) (JwtHandlerx, error)

type JwtxMiddlewareGinx

type JwtxMiddlewareGinx struct {
	// contains filtered or unexported fields
}

func (*JwtxMiddlewareGinx) DeleteToken

func (j *JwtxMiddlewareGinx) DeleteToken(ctx *gin.Context) (*UserClaims, error)

DeleteToken 退出当前会话

func (*JwtxMiddlewareGinx) ExtractToken

func (j *JwtxMiddlewareGinx) ExtractToken(ctx *gin.Context) string

ExtractToken 从 Authorization: Bearer <token> 提取

func (*JwtxMiddlewareGinx) LongVerifyToken

func (j *JwtxMiddlewareGinx) LongVerifyToken(ctx *gin.Context) (*UserClaims, error)

LongVerifyToken 验证 Refresh Token

func (*JwtxMiddlewareGinx) RefreshToken

func (j *JwtxMiddlewareGinx) RefreshToken(ctx *gin.Context, newSsid string) (*UserClaims, error)

RefreshToken 刷新 Token(可选新设备)

func (*JwtxMiddlewareGinx) SetToken

func (j *JwtxMiddlewareGinx) SetToken(ctx *gin.Context, userId int64, name string, ssid string) (*UserClaims, error)

SetToken 登录:自动按设备管理会话(同设备只保留最新)

func (*JwtxMiddlewareGinx) VerifyToken

func (j *JwtxMiddlewareGinx) VerifyToken(ctx *gin.Context) (*UserClaims, error)

VerifyToken 验证 Access Token

type JwtxMiddlewareGinxConfig

type JwtxMiddlewareGinxConfig struct {
	SigningMethod         jwt.SigningMethod // 默认HS512加密方式jwt.SigningMethodHS512
	DurationExpiresIn     time.Duration     // Access Token 过期时间
	LongDurationExpiresIn time.Duration     // Refresh Token 过期时间
	JwtKey                []byte            // Access Token 密钥
	LongJwtKey            []byte            // Refresh Token 密钥
	HeaderJwtTokenKey     string            // Access Token Header Key,默认jwt-token
	LongHeaderJwtTokenKey string            // Refresh Token Header Key,默认long-jwt-token
}

JwtxMiddlewareGinxConfig 配置

  • SigningMethod: 默认HS512加密方式jwt.SigningMethodHS512
  • DurationExpiresIn: Access Token 过期时间,默认30分钟
  • LongDurationExpiresIn: Refresh Token 过期时间,默认7天
  • JwtKey: 密钥【必传】
  • LongJwtKey: 密钥【必传】
  • HeaderJwtTokenKey: Access Token Header Key,默认jwt-token
  • LongHeaderJwtTokenKey: Refresh Token Header Key,默认long-jwt-token

type UserClaims

type UserClaims struct {
	jwt.RegisteredClaims
	Uid       int64  `json:"uid"`
	Name      string `json:"name"`
	Ssid      string `json:"ssid"` // 会话唯一 ID
	UserAgent string `json:"user_agent"`
	TokenType string `json:"token_type"` // "access" 或 "refresh"
}

UserClaims 用于 Access 和 Refresh Token

Directories

Path Synopsis
Package jwtxmocks is a generated GoMock package.
Package jwtxmocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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