jwt

package
v0.0.0-...-1369677 Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

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

	// TokenTypeAccess 令牌类型:访问
	TokenTypeAccess = "access"
	// TokenTypeRefresh 令牌类型:刷新
	TokenTypeRefresh = "refresh"

	// LoginTypePhone 登录类型:手机号
	LoginTypePhone = "phone"
	// LoginTypeEmail 登录类型:邮箱
	LoginTypeEmail = "email"
)
View Source
const (
	// PrivatePayloadName 私有载荷名称
	PrivatePayloadName = "x_user_info"
)

Variables

This section is empty.

Functions

func TokenClientInterceptor

func TokenClientInterceptor(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error

TokenClientInterceptor 默认令牌客户端一元拦截器

func TokenInterceptor

func TokenInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error)

TokenInterceptor 默认令牌服务端一元拦截器

func TokenStreamClientInterceptor

func TokenStreamClientInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error)

TokenStreamClientInterceptor 默认令牌客户端流拦截器

func TokenStreamInterceptor

func TokenStreamInterceptor(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

TokenStreamInterceptor 默认令牌服务端流拦截器

func WithToken

func WithToken(ctx context.Context, token *Token) context.Context

WithToken 将默认令牌数据关联到context中

Types

type Config

type Config struct {
	Issuer         string        // 签发者
	SecretKey      string        // 密钥
	ExpirationTime time.Duration // 过期时间
}

Config JWT相关配置

type JWT

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

JWT JWT结构详情

func MustNewJWT

func MustNewJWT(c *Config) *JWT

MustNewJWT 新建JWT

func NewJWT

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

NewJWT 新建JWT

func (*JWT) CreateToken

func (j *JWT) CreateToken(token interface{}, expirationTime ...time.Duration) (string, error)

CreateToken 创建JWT字符串

func (*JWT) ParseToken

func (j *JWT) ParseToken(tokenStr string, token interface{}) error

ParseToken 解析JWT字符串

type RefreshToken

type RefreshToken struct {
	TokenType string `json:"token_type"` // 令牌类型,固定为refresh
	RandomId  string `json:"random_id"`  // 随机id
	LoginType string `json:"login_type"` // 登录类型
	UserId    int64  `json:"user_id"`    // 用户id
	CompanyId int64  `json:"company_id"` // 公司id
	Phone     string `json:"phone"`      // 手机号
}

RefreshToken 默认刷新令牌结构详情

type Token

type Token struct {
	TokenType    string  `json:"token_type"`    // 令牌类型,固定为access
	RandomId     string  `json:"random_id"`     // 随机id
	LoginType    string  `json:"login_type"`    // 登录类型
	IsAdmin      bool    `json:"is_admin"`      // 是否为超级管理员
	UserId       int64   `json:"user_id"`       // 用户id
	DepartmentId int64   `json:"department_id"` // 部门id
	CompanyId    int64   `json:"company_id"`    // 公司id
	RoleIds      []int64 `json:"role_ids"`      // 角色id列表
}

Token 默认令牌结构详情

func FromContext

func FromContext(ctx context.Context) (*Token, bool)

FromContext 从context获取默认令牌数据

func FromMD

func FromMD(md metadata.MD) (*Token, bool)

FromMD 从grpc metadata获取默认令牌数据

func (*Token) Visit

func (t *Token) Visit(fn func(key, val string) bool)

Visit 访问并操作默认令牌数据

Jump to

Keyboard shortcuts

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