| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | package adminimport (	"github.com/druidcaesa/gotool"	"strings"	"ulink-admin/config"	"ulink-admin/frame"	"ulink-admin/modules/system/models/model"	"ulink-admin/pkg/base"	"ulink-admin/pkg/cache")type UserUtils struct {}// GetUserInfo 通过jwt获取当前登录用户func GetUserInfo(c *frame.Context) *model.SysUser {	token := c.Request.Header.Get("Authorization")	if token == "" {		return nil	}	s := strings.Split(token, " ")	if len(s) != 2 {		return nil	}	// 解析token包含的信息	claims := getJWTCustomClaims(s[1])	if claims == nil {		return nil	}	info := claims.UserInfo	return info}func GetJWTRedisKey(c *frame.Context) string {	token := c.Request.Header.Get("Authorization")	s := strings.Split(token, " ")	// 解析token包含的信息	claims := getJWTCustomClaims(s[1])	if claims == nil {		return ""	}	return claims.RedisKey}func GetToken(key string) (string, error) {	switch config.GetJwtConfig().Cache {	case "db":	case "memory":		tokenInfo := cache.GetToken(key)		if tokenInfo != nil {			return tokenInfo.Token, nil		}	case "redis":		return base.RedisDB.GET(key)	}	return "", nil}// SaveRedisToken 将token存入到redisfunc SaveRedisToken(token string) {	server := config.GetServerCfg()	if server.Lock == "1" {		claims := getJWTCustomClaims(token)		switch config.GetJwtConfig().Cache {		case "db":		case "memory":			cache.SaveToken(claims.RedisKey, claims.RedisTimeOut, token)		case "redis":			_, err := base.RedisDB.SETEX(claims.RedisKey, claims.RedisTimeOut, token)			if err != nil {				println(err.Error())			}		}	}}func getJWTCustomClaims(token string) *CustomClaims {	j := NewJWT()	// parseToken 解析token包含的信息	claims, err := j.ParseToken(token)	if err != nil {		gotool.Logs.ErrorLog().Println(err)		return nil	}	return claims}// CheckIsAdmin 判断是否是超级管理员func CheckIsAdmin(user *model.SysUser) bool {	if user.Id == 1 {		return true	} else {		return false	}}
 |