public function login(Request $request, Response $response): void { $email = $request->get('email'); $password = $request->get('password'); if (!$email || !$password) { $response->setStatusCode(400)->json([ 'error' => 'Validation Error', 'message' => 'Email și parola sunt obligatorii' ])->send(); return; } $users = User::where(['email' => $email]); if (empty($users)) { $response->setStatusCode(401)->json([ 'error' => 'Invalid Credentials', 'message' => 'Email sau parolă incorectă' ])->send(); return; } $user = $users[0]; if (!$this->security->verifyPassword($password, $user->password_hash)) { $response->setStatusCode(401)->json([ 'error' => 'Invalid Credentials', 'message' => 'Email sau parolă incorectă' ])->send(); return; } $token = $this->security->generateToken([ 'user_id' => $user->id, 'email' => $user->email, 'first_name' => $user->first_name, 'last_name' => $user->last_name ]); $response->json([ 'success' => true, 'message' => 'Autentificare reușită', 'data' => [ 'access_token' => $token, 'token_type' => 'Bearer', 'expires_in' => 3600, 'user' => [ 'id' => $user->id, 'email' => $user->email, 'first_name' => $user->first_name, 'last_name' => $user->last_name ] ] ])->send(); }