src/Controller/AuthController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Contracts\HttpClient\HttpClientInterface;
  9. class AuthController extends AbstractController
  10. {
  11.     public function __construct(
  12.         private HttpClientInterface $httpClient
  13.     ) {}
  14.     #[Route('/connexion'name'login')]
  15.     public function login(Request $requestSessionInterface $session): Response
  16.     {
  17.         $error null;
  18.         if ($request->isMethod('POST')) {
  19.             $email $request->request->get('email');
  20.             $password $request->request->get('password');
  21.             try {
  22.                 $response $this->httpClient->request('POST'$_ENV['BUSINESS_API_URL'].'/api/platform-login', [
  23.                     'json' => [
  24.                         'email' => $email,
  25.                         'password' => $password,
  26.                         'platform' => 16,
  27.                     ],
  28.                 ]);
  29.                 if ($response->getStatusCode() === 200) {
  30.                     $data $response->toArray();
  31. //dd($email, $password, $data);
  32.                     // 🔐 Stockage JWT
  33.                     $session->set('jwt_token'$data['token']);
  34.                     $session->set('user_email'$email);
  35.                     return $this->redirectToRoute('home');
  36.                 }
  37.             } catch (\Throwable $e) {
  38.                 $error 'Identifiants invalides ou compte non vérifié.';
  39.             }
  40.         }
  41.         return $this->render('auth/login.html.twig', [
  42.             'error' => $error,
  43.         ]);
  44.     }
  45.     #[Route('/deconnexion'name'logout')]
  46.     public function logout(SessionInterface $session): Response
  47.     {
  48.         $session->invalidate();
  49.         return $this->redirectToRoute('home');
  50.     }
  51. }