diff --git a/src/backend/controller/userController.go b/src/backend/controller/userController.go index 42d2402..b7e2256 100644 --- a/src/backend/controller/userController.go +++ b/src/backend/controller/userController.go @@ -110,7 +110,7 @@ func UserRegister(c *gin.Context) { return } - if err := models.HashPassword(&user); err != nil { + if err := user.EncryptPassword(); err != nil { c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to hash password"}) return // 这里需要返回 } diff --git a/src/backend/models/user.go b/src/backend/models/user.go index 56a3f2d..a561ef9 100644 --- a/src/backend/models/user.go +++ b/src/backend/models/user.go @@ -5,8 +5,6 @@ import ( "fmt" "time" - "errors" - "github.com/dgrijalva/jwt-go" "golang.org/x/crypto/bcrypt" "gorm.io/gorm" @@ -69,25 +67,27 @@ func CreateUser(db *gorm.DB, user *User) error { } // hash -func HashPassword(user *User) error { + +func (u *User) EncryptPassword() error { // Check if the passwd is empty - if user.Password == "" { - return errors.New("password cannot be empty") + if u.Password == "" { + return fmt.Errorf("module EncryptPassword: password cannot be empty") } - hashedPassword, err := bcrypt.GenerateFromPassword([]byte(user.Password), bcrypt.DefaultCost) + encryptedPassword, err := bcrypt.GenerateFromPassword([]byte(u.Password), bcrypt.DefaultCost) if err != nil { - return err + return fmt.Errorf("module EncryptPassword: %v", err) } - - user.Password = string(hashedPassword) - + u.Password = string(encryptedPassword) return nil } func ComparePassword(user *User, providedPassword string) (bool, error) { // Check if hashed passwd is empty if user.Password == "" { - return false, errors.New("hashed password cannot be empty") + return false, fmt.Errorf("module ComparePassword: hashed password cannot be empty") + } + if providedPassword == "" { + return false, fmt.Errorf("module ComparePassword: input password cannot be empty") } err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(providedPassword)) if err != nil { @@ -95,7 +95,7 @@ func ComparePassword(user *User, providedPassword string) (bool, error) { if err == bcrypt.ErrMismatchedHashAndPassword { return false, nil } - return false, err + return false, fmt.Errorf("module ComparePassword: %v", err) } return true, nil