jwt

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 11, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TokenKey 用户令牌 key
	TokenKey = contextKey("X-Token")
)

Variables

This section is empty.

Functions

func FromMD

func FromMD(md metadata.MD) (string, bool)

FromMD 从 grpc metadata 获取令牌数据

func IsStruct

func IsStruct(obj any) bool

IsStruct 判断是否为结构体

func IsStructPointer

func IsStructPointer(obj any) bool

IsStructPointer 判断是否为结构体指针

func ReadCtx

func ReadCtx(ctx context.Context, token any) error

ReadCtx 从 context 获取令牌数据,并将其反序列化至指定 token 中

注意:token 必须为指针类型

func WithCtx

func WithCtx(ctx context.Context, token any) context.Context

WithCtx 将指定 token 令牌数据关联到 context 中

Types

type Config

type Config struct {
	Issuer     string        // 签发者
	SecretKey  string        // 密钥
	Expiration time.Duration `json:",default=72h"` // 过期时间
}

Config JWT 配置

type JWT

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

JWT 对象

func MustNewJWT

func MustNewJWT(c Config) *JWT

MustNewJWT 新建 JWT 对象

func NewJWT

func NewJWT(c Config) (*JWT, error)

NewJWT 新建 JWT 对象

func (*JWT) GenToken

func (j *JWT) GenToken(token any, expiration ...time.Duration) (string, error)

GenToken 根据给定 token 结构体生成 JWT token

注意:token 必须为结构体或结构体指针,名称以 json tag 对应的名称与 payloads 进行映射

func (*JWT) GenTokenWithPayloads

func (j *JWT) GenTokenWithPayloads(payloads map[string]any, expiration ...time.Duration) (string, error)

GenTokenWithPayloads 根据 payloads 生成 JWT token

func (*JWT) ParseToken

func (j *JWT) ParseToken(tokenString string, token any) error

ParseToken 解析 JWT token,并将其反序列化至指定 token 结构体中

注意:token 必须为结构体指针,名称以 json tag 对应的名称与 payloads 进行映射

func (*JWT) ParseTokenFromRequest

func (j *JWT) ParseTokenFromRequest(r *http.Request, token any) error

ParseTokenFromRequest 从请求头解析 JWT token,并将其反序列化至指定 token 结构体中

注意:token 必须为结构体指针类型,名称以 json tag 对应的名称与 payloads 进行映射

func (*JWT) ParseTokenPayloads

func (j *JWT) ParseTokenPayloads(tokenString string) (map[string]any, error)

ParseTokenPayloads 解析 JWT token,返回 payloads

func (*JWT) ParseTokenPayloadsFromRequest

func (j *JWT) ParseTokenPayloadsFromRequest(r *http.Request) (map[string]any, error)

ParseTokenPayloadsFromRequest 从请求头解析 JWT token,返回 payloads

Jump to

Keyboard shortcuts

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