middleware

package
v0.0.0-...-ac7d4c8 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2023 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const GC_TIME = 60 //单位:秒

缓存更新时间

View Source
const (
	GIN_KEY_JWT = "gin_key_jwt"
)

type Handler struct { } //发行者

func (this *Handler) Issuer() string {
	return "test"
}

//设置密匙

func (this *Handler) Secret() string {
	return "abcdefaasdfasdft"
}

//获取token的方式

func (this *Handler) Token(w *Wontext) string {
	var token = ""
	if w.Request.Header["Authorization"] != nil {
		token = w.Request.Header["Authorization"][0]
	}
	return token
}

//当错误时

func (this *Handler) Error(w *Wontext) {
	token, e := w.GenerateToken("hait", "hait", 323)
	fmt.Println("jwt 加密结果:", token, e)
	w.Succ(100, token)
}

//当超时时 func (this *Handler) Timeout(w *Wontext) {

}

View Source
const (
	GIN_KEY_SESSION = "SESSION"
)

Variables

This section is empty.

Functions

func MaxAllowed

func MaxAllowed(n int) gin.HandlerFunc

限制最大允许连接数的中间件,最低255并发

func RegisterValidation

func RegisterValidation(param string, fun ValidFunc)

注册自定义验证器

func Sequence

func Sequence(limit int64, onrepeat func(*gin.Context)) gin.HandlerFunc

防止请求重复提交中间件 忽略GET请求 limit=限制重复提交的时间,onrepeat=当发生重复请求时执行的回调函数

func Session

func Session(name string, maxLifeTime int64) gin.HandlerFunc

session中间件 name=session名称 maxLifeTime=session过期时间

func Sign

func Sign(signKey, secret string) gin.HandlerFunc

Types

type Claims

type Claims struct {
	UserId   int64  `json:"userid"`
	Username string `json:"username"`
	Outtime  int64  `json:"outTime"`
	Group    string `json:"group"`
	jwt.StandardClaims
}

jwt数据保存结构

type JWT

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

jwt处理结构,继承使用

func (*JWT) GenerateToken

func (this *JWT) GenerateToken(id int64, username string) (string, error)

生成token username 用户名 id 用户id group 用户组

func (*JWT) Handler

func (this *JWT) Handler() gin.HandlerFunc

拦截中间件

func (*JWT) Init

func (this *JWT) Init(conf JWTConfigInterface)

func (*JWT) ParseToken

func (this *JWT) ParseToken(token string) (*Claims, error)

解析

type JWTConfigInterface

type JWTConfigInterface interface {
	Group() string             //分组
	Issuer() string            //发行人
	Secret() string            //密匙
	Token(*gin.Context) string //口令获取方式
	Error(*gin.Context)        //当出现错误时
	Timeout(*gin.Context)      //当超时
	Duration() time.Duration   //生存时间(单位分)
}

jwt配置接口

type MemSession

type MemSession struct {
	sync.Map
	// contains filtered or unexported fields
}

session对象

func (*MemSession) Clear

func (this *MemSession) Clear()

func (*MemSession) Del

func (this *MemSession) Del(key string)

func (*MemSession) Get

func (this *MemSession) Get(key string) interface{}

func (*MemSession) Id

func (this *MemSession) Id() string

func (*MemSession) Set

func (this *MemSession) Set(key string, value interface{})

type SessionEngine

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

session engine

type ValidFunc

type ValidFunc func(reflect.Value, reflect.Type) bool

验证函数

Jump to

Keyboard shortcuts

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