v1.2.0: back: use gorm in login
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
a2288ec90a
commit
8f3d9da55e
2 changed files with 7 additions and 13 deletions
|
|
@ -21,7 +21,7 @@ func login(c echo.Context) error {
|
||||||
return c.JSON(http.StatusBadRequest, err)
|
return c.JSON(http.StatusBadRequest, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if response, err := logins.CreateLogin(db, request); err != nil {
|
if response, err := logins.CreateLogin(dbGor, request); err != nil {
|
||||||
return c.JSON(http.StatusBadRequest, "Not a valide user username or password")
|
return c.JSON(http.StatusBadRequest, "Not a valide user username or password")
|
||||||
} else {
|
} else {
|
||||||
return c.JSON(http.StatusOK, response)
|
return c.JSON(http.StatusOK, response)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package logins
|
package logins
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"errors"
|
"errors"
|
||||||
|
|
@ -11,6 +10,7 @@ import (
|
||||||
"github.com/biscuit-auth/biscuit-go/v2/parser"
|
"github.com/biscuit-auth/biscuit-go/v2/parser"
|
||||||
"gitlab.g3e.fr/h6n/users/lib"
|
"gitlab.g3e.fr/h6n/users/lib"
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
func CheckPasswordHash(password, hash string) bool {
|
func CheckPasswordHash(password, hash string) bool {
|
||||||
|
|
@ -18,20 +18,14 @@ func CheckPasswordHash(password, hash string) bool {
|
||||||
return err == nil
|
return err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateLogin(db *sql.DB, request RequestLogin) (ResponseLogin, error) {
|
func CreateLogin(db *gorm.DB, request RequestLogin) (ResponseLogin, error) {
|
||||||
type (
|
|
||||||
User struct {
|
|
||||||
Username string
|
|
||||||
EncryptedPassword string
|
|
||||||
}
|
|
||||||
)
|
|
||||||
var user User
|
|
||||||
var response ResponseLogin
|
var response ResponseLogin
|
||||||
|
|
||||||
if err := db.QueryRow("SELECT username, password FROM users WHERE email = $1", request.Username).Scan(&user.Username, &user.EncryptedPassword); err != nil {
|
var user = Users{Email: request.Username}
|
||||||
return response, err
|
if err := db.First(&user); err.Error != nil {
|
||||||
|
return response, err.Error
|
||||||
}
|
}
|
||||||
if !CheckPasswordHash(request.Password, user.EncryptedPassword) {
|
if !CheckPasswordHash(request.Password, user.Password) {
|
||||||
return response, errors.ErrUnsupported
|
return response, errors.ErrUnsupported
|
||||||
}
|
}
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue