Génération d'un jeton aléatoire de confirmation d'email avec PHP et Symfony
Publié le 01/07/2023 • Actualisé le 01/07/2023
Dans ce bout de code, nous voyons comment générer un jeton aléatoire de confirmation d'email avec PHP et Symfony. La longueur finale de la chaîne est la même (50). Le résultat est légèrement différent avec Symfony, car le jeton semble être "plus aléatoire" avec les lettres en majuscules et une meilleure répartition des chiffres et des lettres (consonne).
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\String\ByteString;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet263Trait
{
public function snippet263(Request $request): void
{
// PHP
$confirmationCode1 = bin2hex(random_bytes(25));
$confirmationCode2 = bin2hex((new \Random\Randomizer())->getBytes(25));
// Symfony
$confirmationCode3 = ByteString::fromRandom(50);
echo 'PHP: '.$confirmationCode1.' '.\strlen($confirmationCode1).PHP_EOL;
echo 'PHP 8.2: '.$confirmationCode2.' '.\strlen($confirmationCode2).PHP_EOL;
echo 'Symfony: '.$confirmationCode3.' '.$confirmationCode3->length();
// That's it! 😁
}
}
Exécuter le snippet Plus sur Stackoverflow Lire la doc Snippet aléatoire