mirror of
https://github.com/Unkn0wnCat/matrix-veles.git
synced 2025-06-01 18:21:58 +02:00
Add hash-lists filtering, format code, prepare API
This commit is contained in:
parent
b81af24e50
commit
1b15b12859
11 changed files with 353 additions and 106 deletions
38
internal/db/model/user.go
Normal file
38
internal/db/model/user.go
Normal file
|
@ -0,0 +1,38 @@
|
|||
package model
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
type DBUser struct {
|
||||
Username string `bson:"username" json:"username"`
|
||||
HashedPassword string `bson:"password" json:"password"`
|
||||
|
||||
Password *string `bson:"-" json:"-"`
|
||||
}
|
||||
|
||||
func (usr *DBUser) HashPassword() error {
|
||||
if usr.Password == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
hash, err := bcrypt.GenerateFromPassword([]byte(*usr.Password), 14)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
usr.HashedPassword = base64.StdEncoding.EncodeToString(hash)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (usr *DBUser) CheckPassword(password string) error {
|
||||
hash, err := base64.StdEncoding.DecodeString(usr.HashedPassword)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = bcrypt.CompareHashAndPassword(hash, []byte(password))
|
||||
|
||||
return err
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue