✨ feat(sécurité): Modifie l'authentification pour utiliser les paramètres username et password.
This commit is contained in:
@@ -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')),
|
||||
|
||||
Reference in New Issue
Block a user