Aller au contenu

Validateur

phil/passwords

Quand symfony/validator est installé, deux contraintes vérifient un mot de passe dans un formulaire ou un objet. Les deux acceptent une chaîne ou un Stringable ; null et la chaîne vide sont valides, comme pour toute contrainte sauf NotBlank. Ni l'une ni l'autre ne met le mot de passe dans sa violation : la valeur invalide est la chaîne vide.

MinimumStrength

use Phil\Passwords\Strength\Score;
use Phil\Passwords\Validator\MinimumStrength;

#[MinimumStrength(Score::Strong)]
public string $plainPassword;
OptionValeur par défautEffet
minScoreScore::StrongLa plus basse note acceptée.
messageThis password is too easy to guess.La violation.

La violation, de code MinimumStrength::TOO_WEAK_ERROR, a les paramètres {{ score }}, {{ min_score }}, {{ warning }} et {{ suggestion }}. Les deux derniers sont des clés de traduction du domaine phil_passwords, ou sont vides, pour que le formulaire affiche la rétroaction.

Quand l'objet validé implémente Contract\PasswordUserInputs, ses passwordUserInputs() — nom, adresse courriel, nom d'utilisateur — sont données à l'estimateur.

NotCompromised

use Phil\Passwords\Validator\NotCompromised;

#[NotCompromised(threshold: 1, skipOnError: false)]
public string $plainPassword;
OptionValeur par défautEffet
threshold1Le nombre d'occurrences à partir duquel un mot de passe est refusé.
skipOnErrorfalseAccepte le mot de passe quand la source ne peut pas répondre, au lieu de le refuser.
messageThis password appears in known data breaches: choose another one.La violation, de code COMPROMISED_ERROR, avec {{ occurrences }}.
unavailableMessageThis password could not be checked against known data breaches: try again later.La violation quand la source ne peut pas répondre, de code UNAVAILABLE_ERROR.

NotCompromisedValidator a besoin d'un BreachChecker : enregistrez-le comme service, comme le montre Installation. Les messages sont traduits en anglais et en français dans translations/validators.<locale>.php.