jwt.go 770 字节
package middleware

import (
	"github.com/beego/beego/v2/server/web/context"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"
)

type CtxKeyLoginToken struct{}

func JWTAuth(ctx *context.Context) {
	tokenStr := ctx.Input.Header("xxxx")
	tk := domain.LoginToken{}
	err := tk.ParseToken(tokenStr)
	if err != nil {
		//
		return
	}
	ctx.Input.SetData(CtxKeyLoginToken{}, domain.LoginToken{})
}

func NewCtxLoginToken(ctx *context.Context, tk domain.LoginToken) {
	ctx.Input.SetData(CtxKeyLoginToken{}, domain.LoginToken{})
}

func FormCtxLoginToken(ctx *context.Context) (domain.LoginToken, bool) {
	val := ctx.Input.GetData(CtxKeyLoginToken{})
	if v, ok := val.(domain.LoginToken); ok {
		return v, true
	}
	return domain.LoginToken{}, false
}