initial commit from original sev version
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"abuse_registration_poc/internal/models"
|
||||
"abuse_registration_poc/internal/utils"
|
||||
)
|
||||
|
||||
// Login mirrors the original API login handler shape: validate user credentials,
|
||||
// generate a JWT, and return {message, token}.
|
||||
func (h *Handler) Login(writer http.ResponseWriter, request *http.Request) {
|
||||
var user models.ValidateUser
|
||||
if err := DecodeJSON(request, &user); err != nil {
|
||||
log.Printf("Error parsing request data: %v", err)
|
||||
WriteJSON(writer, http.StatusBadRequest, map[string]string{"message": "Could not parse request data."})
|
||||
return
|
||||
}
|
||||
|
||||
if err := h.users.ValidateCredentials(&user); err != nil {
|
||||
log.Printf("Error validating credentials: %v", err)
|
||||
WriteJSON(writer, http.StatusUnauthorized, map[string]string{"message": "Could not authenticate user."})
|
||||
return
|
||||
}
|
||||
|
||||
token, err := utils.GenerateToken(user.UserName, user.ID, user.Role)
|
||||
if err != nil {
|
||||
log.Printf("Error generating token: %v", err)
|
||||
WriteJSON(writer, http.StatusInternalServerError, map[string]string{"message": "Could not authenticate user."})
|
||||
return
|
||||
}
|
||||
|
||||
WriteJSON(writer, http.StatusOK, map[string]string{"message": "Login successful!", "token": token})
|
||||
}
|
||||
Reference in New Issue
Block a user