go-mongo/models/user.go

36 lines
658 B
Go

package models
import (
"go.mongodb.org/mongo-driver/bson/primitive"
"golang.org/x/crypto/bcrypt"
)
func MakeHash(password string) (string, error) {
bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)
return string(bytes), err
}
func (u *User) CheckPassword(password string) bool {
if u.Password == nil {
return false
}
err := bcrypt.CompareHashAndPassword([]byte(*u.Password), []byte(password))
return err == nil
}
func (u User) GetID() primitive.ObjectID {
return u.ID
}
func (u User) validate() []error {
return nil
}
type UserJWT struct {
ID string `json:"id"`
Identity string `json:"identity"`
}