func Regis.terUser(db *gorm.DB) fiber.Handler {
return func(c *fiber.Ctx) error {
user := new(models.User)
if err := c.BodyParser(user); err != nil {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Cannot parse JSON"})
}

hashedPassword, err := bcrypt.GenerateFromPassword([]byte(user.Password), bcrypt.DefaultCost)
if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "Cannot hash password"})
}
user.Password = string(hashedPassword)

if err := db.Create(&user).Error; err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "Cannot create user"})
}

user.Password = "" // Don't send password back
return c.JSON(user)
}
}



func LoginUser(db *gorm.DB) fiber.Handler {
return func(c *fiber.Ctx) error {
type LoginInput struct {
Username string `json:"username"`
Password string `json:"password"`
}
input := new(LoginInput)
if err := c.BodyParser(input); err != nil {
log.Printf("Error parsing JSON: %v", err)
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Cannot parse JSON"})
}

log.Printf("Login attempt for username: %s", input.Username)

var user models.User
if err := db.Where("username = ?", input.Username).First(&user).Error; err != nil {
log.Printf("Error finding user: %v", err)
if err == gorm.ErrRecordNotFound {
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "Invalid credentials"})
}
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "Database error"})
}

log.Printf("User found: %v", user.Username)

if err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(input.Password)); err != nil {
log.Printf("Password comparison failed: %v", err)
log.Printf("Stored hash: %s", user.Password)
log.Printf("Input password: %s", input.Password)
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "Invalid credentials"})
}



상황 요약 

회원가입 해서 username password post 보내면 payload에 올바르게 적혀있음

데이터 베이스에 password가 해싱되어 저장. username은 그대로 잘 있음

다시 로그인할때 post 보내면 payload에 회원가입할때랑 일치함

그러나 백엔드서버에 

데이터베이스 hash 값이랑 다르다고 나옴. 

이거 몇십분쨰 고민이넹.... 

도와줘영