[Symfony 4] Utilisation encodage

a marqué ce sujet comme résolu.

Eurêka !

J’ai trouvé pourquoi cela ne jouait pas. Et c’était un truc tout con.

Le problème venait du fait que dans ma BDD, j’avais limité la longueur du mot de passe à 50 caractères et que bcrypt utilise une plus grande longueur (il est conseillé de la mettre à 255). Du coup, lors de l’inscription, Symfony ne gueulait pas et insérait un mot de passe crypté tronqué dans la table.

Voilà voilà.

Heu… Le mot de passe enregistré étant un agrégat et non une saisie utilisateur, en quoi une contrainte de validation aurait pu détecter que le résultat était plus long que ce que pouvait enregistrer le champ ?

Parce que si un jour il souhaite changer et ne plus utiliser bcrypt, la longueur de l’agrégat changera, et avec Argon2, la longueur n’est apparemment plus fixe…

+0 -0

Bah quand tu fais le $user->setPassword($password), tu passes bien un mot de passe déjà crypté ? Du coup, au moment de la validation de l’entité, si la chaîne fait 180 caractères mais que la contrainte est à 50, ça doit gueuler. Et ce peu importe que tu passes de bcrypt à autre chose. Si le @Assert est iso avec le @ORM, normalement pas de soucis.

+0 -0

Il faudrait que je vérifie si la validation selon les contraintes est faite lors de handleRequest() ou isValid(). Dans le second cas, OK — pour autant qu’on valide le formulaire après avoir calculé l’agrégat —, dans le premier, les contraintes ne serviront à rien.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte