From b7b872f70b135160ce87556f4724068d404813f5 Mon Sep 17 00:00:00 2001 From: maxwell Date: Fri, 27 Sep 2024 09:33:09 +0800 Subject: [PATCH] update --- .history/models/user_20240927093111.go | 38 ++++++++++++++++++++++++++ models/user.go | 4 ++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 .history/models/user_20240927093111.go diff --git a/.history/models/user_20240927093111.go b/.history/models/user_20240927093111.go new file mode 100644 index 0000000..2fcb5b7 --- /dev/null +++ b/.history/models/user_20240927093111.go @@ -0,0 +1,38 @@ +package models + +import ( + "errors" + "time" + + "golang.org/x/crypto/bcrypt" + "gorm.io/gorm" +) + +type User struct { + ID uint `gorm:"primarykey" json:"id"` + Username string `gorm:"unique" json:"username"` + Password string `json:"-"` + Email string `json:"email"` + Phone string `json:"phone"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +func (u *User) BeforeCreate(tx *gorm.DB) error { + hashedPassword, err := bcrypt.GenerateFromPassword([]byte(u.Password), bcrypt.DefaultCost) + if err != nil { + return err + } + u.Password = string(hashedPassword) + return nil +} + +func (u *User) ComparePassword(password string) error { + //直接比较密码,不用bcrypt + if u.Password == password { + return nil + } else { + return errors.New("error password") + // bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(password)) + } +} diff --git a/models/user.go b/models/user.go index bbc8e34..2fcb5b7 100644 --- a/models/user.go +++ b/models/user.go @@ -1,6 +1,7 @@ package models import ( + "errors" "time" "golang.org/x/crypto/bcrypt" @@ -31,6 +32,7 @@ func (u *User) ComparePassword(password string) error { if u.Password == password { return nil } else { - return bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(password)) + return errors.New("error password") + // bcrypt.CompareHashAndPassword([]byte(u.Password), []byte(password)) } }