jwt for webapp
This commit is contained in:
parent
7e77fd7d27
commit
9d332bbda4
5 changed files with 112 additions and 152 deletions
|
|
@ -31,11 +31,6 @@ func (db *DB) GetUser(username string) (u core.User, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func (db *DB) UserIsAdmin(username string) bool {
|
||||
u, _ := db.GetUser(username)
|
||||
return u.Admin
|
||||
}
|
||||
|
||||
func (db *DB) UserExists(username string) error {
|
||||
return db.users.Get(username, nil)
|
||||
}
|
||||
|
|
@ -100,14 +95,14 @@ func (db *DB) CreateUser(username, password string, admin bool) error {
|
|||
})
|
||||
}
|
||||
|
||||
func (db *DB) Login(username, password string) (err error) {
|
||||
var u core.User
|
||||
func (db *DB) Login(username, password string) (u core.User, err error) {
|
||||
u, err = db.GetUser(username)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if u.Locked == 3 {
|
||||
return errors.New("db: user locked")
|
||||
err = errors.New("db: user locked")
|
||||
return
|
||||
}
|
||||
if err = bcrypt.CompareHashAndPassword([]byte(u.Password), validatePassword(password)); err != nil {
|
||||
u.Locked++
|
||||
|
|
@ -115,7 +110,8 @@ func (db *DB) Login(username, password string) (err error) {
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
return errors.New("db: wrong login")
|
||||
err = errors.New("db: wrong login")
|
||||
return
|
||||
}
|
||||
if u.Locked > 0 {
|
||||
u.Locked = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue