|
@@ -8,6 +8,7 @@ import (
|
|
|
"time"
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
+ "github.com/go-redis/redis/v8"
|
|
|
"github.com/mhaya/game/game_cluster/internal/code"
|
|
|
"github.com/mhaya/game/game_cluster/internal/constant"
|
|
|
"github.com/mhaya/game/game_cluster/internal/mdb"
|
|
@@ -70,24 +71,34 @@ func (a *Admin) Login(ctx *gin.Context, username string, password string) (*enti
|
|
|
return nil, common.NewResult(code.UserNameOrPasswordError)
|
|
|
}
|
|
|
|
|
|
- // 创建token
|
|
|
- generateToken, err := user.GenerateToken()
|
|
|
- if err != nil {
|
|
|
- mhayaLogger.Warnf("Login GenerateToken error:", err)
|
|
|
+ token, err := mdb.RDB.Get(ctx, user.Username).Result()
|
|
|
+ if err != nil && err != redis.Nil {
|
|
|
+ mhayaLogger.Warnf("Login Get error:", err)
|
|
|
return nil, common.NewResult(code.InternalError)
|
|
|
}
|
|
|
|
|
|
- // 保存token 到 redis 中 过期时间为1天
|
|
|
- err = mdb.RDB.Set(ctx, generateToken, user.Username, 24*time.Hour).Err()
|
|
|
- if err != nil {
|
|
|
- mhayaLogger.Warnf("Login Set error:", err)
|
|
|
- return nil, common.NewResult(code.InternalError)
|
|
|
- }
|
|
|
+ if token == "" {
|
|
|
+ // 创建token
|
|
|
+ generateToken, err := user.GenerateToken()
|
|
|
+ if err != nil {
|
|
|
+ mhayaLogger.Warnf("Login GenerateToken error:", err)
|
|
|
+ return nil, common.NewResult(code.InternalError)
|
|
|
+ }
|
|
|
|
|
|
- err = a.loginAuthSetRoleRedis(user.RoleId, generateToken)
|
|
|
- if err != nil {
|
|
|
- mhayaLogger.Warnf("Login loginAuthSetRoleRedis error:", err)
|
|
|
- return nil, common.NewResult(code.InternalError)
|
|
|
+ // 保存token 到 redis 中 过期时间为1天
|
|
|
+ err = mdb.RDB.Set(ctx, user.Username, generateToken, 24*time.Hour).Err()
|
|
|
+ if err != nil {
|
|
|
+ mhayaLogger.Warnf("Login Set error:", err)
|
|
|
+ return nil, common.NewResult(code.InternalError)
|
|
|
+ }
|
|
|
+
|
|
|
+ err = a.loginAuthSetRoleRedis(user.RoleId, generateToken)
|
|
|
+ if err != nil {
|
|
|
+ mhayaLogger.Warnf("Login loginAuthSetRoleRedis error:", err)
|
|
|
+ return nil, common.NewResult(code.InternalError)
|
|
|
+ }
|
|
|
+
|
|
|
+ token = generateToken
|
|
|
}
|
|
|
|
|
|
// 更新用户登录时间
|
|
@@ -107,7 +118,7 @@ func (a *Admin) Login(ctx *gin.Context, username string, password string) (*enti
|
|
|
|
|
|
// 返回用户信息
|
|
|
resp := &entity.AdminResp{
|
|
|
- ToKen: generateToken,
|
|
|
+ ToKen: token,
|
|
|
RoleID: user.RoleId,
|
|
|
}
|
|
|
|