🎉 初始化项目
This commit is contained in:
52
server/service/system/jwt_black_list.go
Normal file
52
server/service/system/jwt_black_list.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
||||
"git.echol.cn/loser/st/server/global"
|
||||
"git.echol.cn/loser/st/server/model/system"
|
||||
)
|
||||
|
||||
type JwtService struct{}
|
||||
|
||||
var JwtServiceApp = new(JwtService)
|
||||
|
||||
//@author: [piexlmax](https://github.com/piexlmax)
|
||||
//@function: JsonInBlacklist
|
||||
//@description: 拉黑jwt
|
||||
//@param: jwtList model.JwtBlacklist
|
||||
//@return: err error
|
||||
|
||||
func (jwtService *JwtService) JsonInBlacklist(jwtList system.JwtBlacklist) (err error) {
|
||||
err = global.GVA_DB.Create(&jwtList).Error
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
global.BlackCache.SetDefault(jwtList.Jwt, struct{}{})
|
||||
return
|
||||
}
|
||||
|
||||
//@author: [piexlmax](https://github.com/piexlmax)
|
||||
//@function: GetRedisJWT
|
||||
//@description: 从redis取jwt
|
||||
//@param: userName string
|
||||
//@return: redisJWT string, err error
|
||||
|
||||
func (jwtService *JwtService) GetRedisJWT(userName string) (redisJWT string, err error) {
|
||||
redisJWT, err = global.GVA_REDIS.Get(context.Background(), userName).Result()
|
||||
return redisJWT, err
|
||||
}
|
||||
|
||||
func LoadAll() {
|
||||
var data []string
|
||||
err := global.GVA_DB.Model(&system.JwtBlacklist{}).Select("jwt").Find(&data).Error
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("加载数据库jwt黑名单失败!", zap.Error(err))
|
||||
return
|
||||
}
|
||||
for i := 0; i < len(data); i++ {
|
||||
global.BlackCache.SetDefault(data[i], struct{}{})
|
||||
} // jwt黑名单 加入 BlackCache 中
|
||||
}
|
||||
Reference in New Issue
Block a user