feat(sécurité): Modifie l'authentification pour utiliser les paramètres username et password.

This commit is contained in:
Serreau Jovann
2025-11-22 21:41:30 +01:00
parent 89e71a71db
commit 375d7c91e1

View File

@@ -17,6 +17,7 @@ use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
use Symfony\Component\Security\Http\SecurityRequestAttributes;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
@@ -39,7 +40,7 @@ class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
public function supports(Request $request): bool
{
return $request->attributes->get('_route') === self::LOGIN_ROUTE;
return ($request->attributes->get('_route') === self::LOGIN_ROUTE) && $request->isMethod('POST');
}
@@ -49,7 +50,10 @@ class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
*/
public function authenticate(Request $request): Passport
{
$email = (string) $request->request->get('email', '');
$email = (string) $request->request->get('_username', '');
$request->getSession()->set(SecurityRequestAttributes::LAST_USERNAME, $email);
return new Passport(
// 1. UserBadge: Charge l'utilisateur par l'email
@@ -63,7 +67,7 @@ class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
return $user;
}),
// 2. Credentials: Vérifie le mot de passe
new PasswordCredentials($request->request->get('password', '')),
new PasswordCredentials($request->request->get('_password', '')),
[
// 3. CsrfTokenBadge: Vérifie le jeton CSRF (l'ID 'authenticate' doit correspondre au Twig)
new CsrfTokenBadge('authenticate', $request->request->get('_csrf_token')),