jwt

package
v1.0.7 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2024 License: Apache-2.0 Imports: 6 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccountDetail

type AccountDetail struct {
	Uid          uint   // 用户ID
	Account      string // 账户
	Nickname     string // 昵称
	RefreshCount uint   // 刷新次数
}

AccountDetail 账户信息

type AuthTokenItem

type AuthTokenItem struct {
	Used         bool // Token是否已使用
	RefreshCount uint // 刷新次数
	TokenItem         // token信息
}

AuthTokenItem 刷新授权Token信息

type ClaimsItem

type ClaimsItem struct {
	Issuer           string // JWT的签发者。例如,如果一个网站发行了一个JWT,那么签发者可能就是这个网站的URL
	Subject          string // JWT的主题。主题通常是发行者的标识符,或者是表示JWT所代表的对象或用户的标识符。
	ExpireUnit       string // 效期单位,h小时,d天
	ExpireAt         uint   // 过期时间
	SigningAlgorithm string // 加密方式:
	Secret           string // 加密密钥
	TokenLookup      string // Token检索模式, Header
	TokenHeadName    string // token在请求头时的名称,默认值为Bearer
	MaxRefreshCount  uint   // Token最大刷新次数
}

ClaimsItem JWT配置要求属性

type HookHandler

type HookHandler struct {
	Create createHook // 创建缓存Token
	Read   readHook   // 读取缓存Token
	Remove removeHook // 移除缓存Token
	Verify verifyHook // 验证缓存Token
}

HookHandler JWT Hook自定义处理

type JWTClaimsItem

type JWTClaimsItem struct {
	Claims     jwt.RegisteredClaims // 注册签名要求
	SignMethod jwt.SigningMethod    // 签名加密方式
	ClaimsItem
}

JWTClaimsItem 注册JWT属性

type JWTHandler

type JWTHandler struct {
	HookHandler
	// contains filtered or unexported fields
}

JWTHandler JWT 服务处理

func New

func New(claims ClaimsItem) *JWTHandler

New 实例JWT

func (*JWTHandler) CreateToken

func (j *JWTHandler) CreateToken(detail AccountDetail) (tokenItem *TokenItem, err error)

创建JWT Token

func (*JWTHandler) Ctx

func (j *JWTHandler) Ctx(ctx context.Context) *JWTHandler

Ctx 设置上下文

func (*JWTHandler) FillPrefixToken

func (j *JWTHandler) FillPrefixToken(token string) string

FillPrefixToken Token返回填充前缀后token

func (*JWTHandler) FilterPrefix

func (j *JWTHandler) FilterPrefix(token string) string

FilterPrefix 过滤Token前缀和右边空格

func (*JWTHandler) Hook

func (j *JWTHandler) Hook(handler HookHandler) *JWTHandler

Hook 自定义Hook操作 handler: 参数 Read: 读取Token缓存 Create:创建Token缓存 Remove:移除Token缓存 Verify:验证缓存Token是否存在

func (*JWTHandler) ParseToken

func (j *JWTHandler) ParseToken(token string) (claims *RegisteredClaimsItem, err error)

ParseToken 解析Token

func (*JWTHandler) ReadHook

func (j *JWTHandler) ReadHook(token string) (*AuthTokenItem, error)

ReadHook 读取缓存授权Token数据

func (*JWTHandler) RefreshToken

func (j *JWTHandler) RefreshToken(refreshToken string) (tokenItem *TokenItem, err error)

RefreshToken 根据旧的Token创建新的Token

func (*JWTHandler) RemoveHook

func (j *JWTHandler) RemoveHook(token string) error

RemoveHook 移除Token-刷新token后直接删除旧token或退出登录

func (*JWTHandler) VerifyHook

func (j *JWTHandler) VerifyHook(token string) error

VerifyHook 验证Token是否存在

type RegisteredClaimsItem

type RegisteredClaimsItem struct {
	AccountDetail
	jwt.RegisteredClaims
}

RegisteredClaimsItem JWT账户发行属性

type TokenItem

type TokenItem struct {
	Token  string `json:"token" dc:"Token值"`
	Expire string `json:"expire" dc:"过期时间"`
}

TokenItem 签名后token信息

Jump to

Keyboard shortcuts

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