-
Notifications
You must be signed in to change notification settings - Fork 3
#114419 - [MIG-IBEXA] Message de validation formulaire de contact #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: feat-108625-form-mail-protection
Are you sure you want to change the base?
#114419 - [MIG-IBEXA] Message de validation formulaire de contact #10
Conversation
|
||
// ÉTAPE 3 - L'internaute a cliqué sur le lien dans le mail généré à l'étape 2 | ||
// On retrouve le token et on crée un cookie | ||
// On redirige l'internaute vers la page demandée. | ||
if ($request->query->has('mail') | ||
&& $request->query->has('token') | ||
&& !$request->query->has('waiting_validation') | ||
) { | ||
$token = $request->get('token'); | ||
$mail = $request->get('mail'); | ||
|
||
/** @var ProtectedTokenStorageRepository $protectedTokenStorageRepository */ | ||
$protectedTokenStorageRepository = $this->entityManager->getRepository(ProtectedTokenStorage::class); | ||
$unexpiredTokenList = $protectedTokenStorageRepository->findUnexpiredBy([ | ||
//'content_id' => $content->id, // TODO, On a pas le contentID ... est ce que on le met dans le line du mail ? On en a pas forcément besoin ... ? | ||
'token' => $token, | ||
'mail' => $mail | ||
]); | ||
|
||
if (count($unexpiredTokenList) > 0 ) { | ||
$uri = $request->getRequestUri(); | ||
$path = parse_url($uri, PHP_URL_PATH); | ||
$response = new RedirectResponse($path); | ||
$response->setPrivate(); | ||
|
||
foreach ($unexpiredTokenList as $unexpiredToken) { | ||
$hash = self::hash($unexpiredToken->getContentId()); | ||
$cookie = new Cookie(PasswordProvided::COOKIE_PREFIX.$hash, $hash, strtotime('now + 24 hours')); // TODO réflexion sur la durées | ||
$response->headers->setCookie($cookie); | ||
// TODO Supprimer/invalider le token ? | ||
} | ||
|
||
$event->setResponse($response); | ||
} | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La récupération du lien présent dans le mail avec le token et le mail se fait maintenant ici et on créer un cookie
// C'est donc le même COOKIE_PREFIX | ||
// Règle 1 = Le nom du cookie doit commencer par COOKIE_PREFIX | ||
if (PasswordProvided::COOKIE_PREFIX !== substr($name, 0, \strlen(PasswordProvided::COOKIE_PREFIX))) { | ||
continue; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
La récupération du lien présent dans le mail avec le token et le mail ne se fait plus ici !
Voir : bundle/Listener/EmailProvided.php
#114419 - [MIG-IBEXA] Message de validation formulaire de contact
Récupération de l'email par le EmailProvided et création du cookie