<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class AuthController extends AbstractController
{
public function __construct(
private HttpClientInterface $httpClient
) {}
#[Route('/connexion', name: 'login')]
public function login(Request $request, SessionInterface $session): Response
{
$error = null;
if ($request->isMethod('POST')) {
$email = $request->request->get('email');
$password = $request->request->get('password');
try {
$response = $this->httpClient->request('POST', $_ENV['BUSINESS_API_URL'].'/api/platform-login', [
'json' => [
'email' => $email,
'password' => $password,
'platform' => 16,
],
]);
if ($response->getStatusCode() === 200) {
$data = $response->toArray();
//dd($email, $password, $data);
// 🔐 Stockage JWT
$session->set('jwt_token', $data['token']);
$session->set('user_email', $email);
return $this->redirectToRoute('home');
}
} catch (\Throwable $e) {
$error = 'Identifiants invalides ou compte non vérifié.';
}
}
return $this->render('auth/login.html.twig', [
'error' => $error,
]);
}
#[Route('/deconnexion', name: 'logout')]
public function logout(SessionInterface $session): Response
{
$session->invalidate();
return $this->redirectToRoute('home');
}
}