Impossible de modifier les données du token lors de l'authentification

Par ne0vince, il y a 2 ans


Bonjour,
Lors de l'authentification utilisateur je souhaite enrichir/modifier certaines données utilisateurs. Dans mon AbstractAuthenticator je surcharge la méthode createToken() afin d'y ajouter mon code supplémentaire :

public function createToken(Passport $passport, string $firewallName): TokenInterface { $passport->getUser()->setRealname('Robert'); $passport->getUser()->setPhone('111111111'); return new UsernamePasswordToken($passport->getUser(), $firewallName, $passport->getUser()->getRoles()); }

Résultat ça ne fonctionne pas, les données de la session utilisateur sont toujours celle de l'entité et lu en BDD.

Un sauveur existe-t-il dans cette communautée..

Merci

1 réponse

ne0vince, il y a 2 ans

C'est réglé. A ajouter dans l'entity User directement :

public function isEqualTo(UserInterface $user): bool
{
    if ($this->id !== $user->getId()) {
        return false; // Force la reconnexion
    }

    if ($this->password !== $user->getPassword()) {
        return false; // Force la reconnexion
    }

    // Important : Pas de vérification pour les rôles

    return true;
}