src/Controller/SecurityController.php line 15

  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  7. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  8. class SecurityController extends AbstractController
  9. {
  10.     #[Route(path'/login'name'app_login')]
  11.     public function login(AuthenticationUtils $authenticationUtils,SessionInterface $session): Response
  12.     {
  13.         if ($this->getUser()) {
  14.             return $this->redirectToRoute('home');
  15.             
  16.         }
  17.         
  18.         // obtém o erro de login se houver
  19.         $error $authenticationUtils->getLastAuthenticationError();
  20.         // último nome de usuário digitado pelo usuário
  21.         $lastUsername $authenticationUtils->getLastUsername();
  22.        
  23.         return $this->render('security/login.html.twig', ['last_username' => $lastUsername'error' => $error]);
  24.     }
  25.     #[Route(path'/logout'name'app_logout')]
  26.     public function logout(SessionInterface $session): void
  27.     {
  28.         // Remover o ID do cliente da sessão
  29.         $session->remove('cliente_id');
  30.         // Opcional: Destruir a sessão completamente
  31.         $session->invalidate();
  32.         throw new \LogicException('Este método pode estar em branco - ele será interceptado pela chave de logout do seu firewall.');
  33.     }
  34. }