fixed login api

This commit is contained in:
2025-01-25 22:02:21 +01:00
parent b6b92d38be
commit 201d6c6e51
2 changed files with 7 additions and 5 deletions

View File

@@ -83,6 +83,7 @@ func GetPasswordHash(db *sql.DB, username string) (string, error) {
var passwordHash string var passwordHash string
err := db.QueryRow(query, username).Scan(&passwordHash) err := db.QueryRow(query, username).Scan(&passwordHash)
if err != nil { if err != nil {
fmt.Printf("error getting password: %v\n", err)
return "", fmt.Errorf("error getting password: %v", err) return "", fmt.Errorf("error getting password: %v", err)
} }
@@ -91,13 +92,14 @@ func GetPasswordHash(db *sql.DB, username string) (string, error) {
func GetUserId(db *sql.DB, username string) (string, error) { func GetUserId(db *sql.DB, username string) (string, error) {
query := ` query := `
SELECT user_id, username AS dbUsername FROM Accounts SELECT user_id FROM Accounts
WHERE LOWER(username) = $1; WHERE LOWER(username) = $1;
` `
var dbUsername string var dbUsername string
err := db.QueryRow(query, username).Scan(&dbUsername, &dbUsername) err := db.QueryRow(query, username).Scan(&dbUsername)
if err != nil { if err != nil {
fmt.Printf("Error getting password: %v\n", err)
return "", fmt.Errorf("error getting user id: %v", err) return "", fmt.Errorf("error getting user id: %v", err)
} }
return dbUsername, err return dbUsername, err

View File

@@ -72,7 +72,7 @@ func Signup(c *fiber.Ctx) error {
} }
func Login(c *fiber.Ctx) error { func Login(c *fiber.Ctx) error {
db, _ := database.InitDatabase() db := database.DB
u := new(models.LoginStruct) u := new(models.LoginStruct)
if err := c.BodyParser(u); err != nil { if err := c.BodyParser(u); err != nil {
@@ -100,7 +100,7 @@ func Login(c *fiber.Ctx) error {
} }
// Verifies password matching // Verifies password matching
passwordHash, _ := database.GetPasswordHash(db, u.Password) passwordHash, _ := database.GetPasswordHash(db, u.Username)
if bcrypt.CompareHashAndPassword([]byte(passwordHash), []byte(u.Password)) != nil { if bcrypt.CompareHashAndPassword([]byte(passwordHash), []byte(u.Password)) != nil {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "invalid password"}) return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "invalid password"})
} }
@@ -124,5 +124,5 @@ func Login(c *fiber.Ctx) error {
cookie.Expires = time.Now().Add(30 * 24 * time.Hour) cookie.Expires = time.Now().Add(30 * 24 * time.Hour)
cookie.HTTPOnly = true cookie.HTTPOnly = true
return c.Status(fiber.StatusOK).JSON(fiber.Map{"message": "Successfully signed up", "username": u.Username, "user_id": userId}) return c.Status(fiber.StatusOK).JSON(fiber.Map{"message": "Successfully logged in", "username": u.Username, "user_id": userId})
} }