diff --git a/backend/plugins/domain/user/handlers.go b/backend/plugins/domain/user/handlers.go index e3ec20a6..7a602d66 100644 --- a/backend/plugins/domain/user/handlers.go +++ b/backend/plugins/domain/user/handlers.go @@ -5,6 +5,7 @@ package user import ( "Wavelet/core/contracts" + "Wavelet/pkg/idgen" "Wavelet/pkg/logger" "Wavelet/pkg/response" "context" @@ -107,6 +108,13 @@ func Login(c *gin.Context) { return } + if user.ID == 0 { + newID := idgen.NextUint64ID() + if err := getDB(c.Request.Context()).Model(&User{}).Where("username = ?", user.Username).Update("id", newID).Error; err == nil { + user.ID = newID + } + } + sess := sessions.Default(c) sess.Set(contracts.AuthUserIDKey, strconv.FormatUint(user.ID, 10)) sess.Set(contracts.AuthUserNameKey, user.Username)