Renommer plainPassword en password

Nous avions un payload avec password et nous avons dû créer une nouvelle clé plainPassword pour encoder notre mot de passe.

En utilisant SerializedName nous pouvons renommer notre clé dans le payload, ainsi

{
    "email": "{{$randomEmail}}",
    "plainPassword": "P@sswordS3cure"
}

deviendra

{
    "email": "{{$randomEmail}}",
    "password": "P@sswordS3cure"
}

tout en gardant notre logique dans notre UserDataPersister. Pour ce faire il faut se rendre dans notre entité User et rajouter @SerializedName("password") à l'attribut $plainPassword`

use Symfony\Component\Serializer\Annotation\SerializedName;

// ...

    /**
     * @SerializedName("password")
     * @Groups("user:item:post")
     *
     * @Assert\NotBlank(groups={"create"})
     * @Assert\Length(
     *      min = 8,
     *      max = 32,
     *      minMessage = "Your password must be at least {{ limit }} characters long",
     *      maxMessage = "Your password cannot be longer than {{ limit }} characters"
     * )
     * @Assert\Regex(
     *     "/^.*(?=.{8,})((?=.*[!@#$%^&*()\-_=+{};:,<.>]){1})(?=.*\d)((?=.*[a-z]){1})((?=.*[A-Z]){1}).*$/",
     *     message = "Your password needs an uppercase, a lowercase, a digit and a special character"
     * )
     */
    private $plainPassword;

Maintenant notre payload avec la clé password fonctionne

{
    "email": "{{$randomEmail}}",
    "password": "P@sswordS3cure"
}
prev next

Commentaires

Connectez-vous pour laisser un commentaire