From a750bdbfaab63248cd4d5313a7dca0d63684f799 Mon Sep 17 00:00:00 2001 From: Juan Pablo Vial Date: Tue, 3 Jun 2025 19:20:44 -0400 Subject: [PATCH] Detailed login errors --- app/src/Controller/API/Login.php | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/Controller/API/Login.php b/app/src/Controller/API/Login.php index dd4e5f2..3c0bad8 100644 --- a/app/src/Controller/API/Login.php +++ b/app/src/Controller/API/Login.php @@ -20,20 +20,23 @@ class Login extends Ideal\Controller $body = $request->getParsedBody(); $output = [ 'username' => $body['username'], + 'success' => false ]; + $statusCode = 409; try { $user = $userRepository->fetchByName($body['username']); - if ($user->validate($body['password'])) { - $loginService->login($user); - $output['token'] = $loginService->getToken(); + if (!$user->validate($body['password'])) { + throw new EmptyResult("Invalid password"); } + $loginService->login($user); + $output['token'] = $loginService->getToken(); + $output['success'] = true; + $statusCode = 200; } catch (EmptyResult $exception) { - $output['error'] = [ - 'code' => $exception->getCode(), - 'message' => $exception->getMessage(), - 'stackTrace' => $exception->getTraceAsString() - ]; + $this->logger->error($exception, [ + 'username' => $body['username'] + ]); } - return $this->withJson($response, $output); + return $this->withJson($response, $output, $statusCode); } }