修复登录导致key错误偶发,db的自动迁移

This commit is contained in:
junleea 2024-06-09 11:22:58 +08:00
parent a322c51c7c
commit 41aa7275b9
3 changed files with 8 additions and 3 deletions

View File

@ -1,6 +1,7 @@
package dao package dao
import ( import (
"fmt"
"gorm.io/driver/mysql" "gorm.io/driver/mysql"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -14,7 +15,10 @@ func Init() {
if err != nil { if err != nil {
panic("failed to connect database") panic("failed to connect database")
} }
//db.Migrate(&User{}) // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表 err = db.AutoMigrate(&User{})
if err != nil {
fmt.Println("user table:", err)
} // 自动迁移,创建表,如果表已经存在,会自动更新表结构,不会删除表,只会创建不存在的表
//db.Migrate(&Video{}) //db.Migrate(&Video{})
//db.Migrate(&Device{}) //db.Migrate(&Device{})
DB = db DB = db

View File

@ -120,7 +120,8 @@ func loginHandler(c *gin.Context) {
} }
user := service.GetUser(req_data.User, req_data.Password, req_data.Password) user := service.GetUser(req_data.User, req_data.Password, req_data.Password)
if user.ID != 0 { if user.ID != 0 {
redis_token := worker.GetRedis("user_" + user.Name) key := "user_" + user.Name
redis_token := worker.GetRedis(string(key))
if redis_token == "" { if redis_token == "" {
// 生成 JWT 令牌 // 生成 JWT 令牌
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
@ -154,7 +155,6 @@ func loginHandler(c *gin.Context) {
} else { } else {
c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"}) c.JSON(200, gin.H{"error": err.Error(), "code": 1, "message": "error"})
} }
} }
func registerHandler(c *gin.Context) { func registerHandler(c *gin.Context) {

View File

@ -116,6 +116,7 @@ func GetRedis(key string) string {
val, err := redisClient.Get(ctx, key).Result() // 从 Redis 读取键值, 如果键不存在则返回空字符串, 如果出现错误则返回错误 val, err := redisClient.Get(ctx, key).Result() // 从 Redis 读取键值, 如果键不存在则返回空字符串, 如果出现错误则返回错误
if err != nil { if err != nil {
fmt.Println("Error getting key: %v", err) fmt.Println("Error getting key: %v", err)
return ""
} }
return val return val
} }