jwt

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2026 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package jwt 处理 JWT 认证

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTokenExpired           error = errors.New("令牌已过期")
	ErrTokenExpiredMaxRefresh error = errors.New("令牌已过最大刷新时间")
	ErrTokenMalformed         error = errors.New("请求令牌格式有误")
	ErrTokenInvalid           error = errors.New("请求令牌无效")
	ErrHeaderEmpty            error = errors.New("需要认证才能访问!")
	ErrHeaderMalformed        error = errors.New("请求头中 Authorization 格式有误")
)

Functions

This section is empty.

Types

type JWT

type JWT struct {

	// 秘钥,用以加密 JWT,读取配置信息 app.key
	SignKey []byte

	// 刷新 Token 的最大过期时间
	MaxRefresh time.Duration
}

JWT 定义一个jwt对象

func NewJWT

func NewJWT() *JWT

func (*JWT) IssueToken

func (jwt *JWT) IssueToken(userID, userUID, userName, udid, code string) string

IssueToken 生成 Token,在登录成功时调用

func (*JWT) ParserToken

func (jwt *JWT) ParserToken(c *gin.Context) (*JWTCustomClaims, error)

ParserToken 解析 Token,中间件中调用

func (*JWT) RefreshToken

func (jwt *JWT) RefreshToken(c *gin.Context) (string, error)

RefreshToken 更新 Token,用以提供 refresh token 接口

type JWTCustomClaims

type JWTCustomClaims struct {
	UserID   string `json:"user_id"`
	UserUID  string `json:"user_uid"`
	UserName string `json:"user_name"`
	Udid     string `json:"udid"`
	Code     string `json:"code"`

	// StandardClaims 结构体实现了 Claims 接口继承了  Valid() 方法
	// JWT 规定了7个官方字段,提供使用:
	// - iss (issuer):发布者
	// - sub (subject):主题
	// - iat (Issued At):生成签名的时间
	// - exp (expiration time):签名过期时间
	// - aud (audience):观众,相当于接受者
	// - nbf (Not Before):生效时间
	// - jti (JWT ID):编号
	jwtpkg.StandardClaims
}

JWTCustomClaims 自定义载荷

Jump to

Keyboard shortcuts

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