Personnalisation du lien de modification du consentement
Il est possible de permettre à l’utilisateur de recevoir par messagerie un lien lui permettant de modifier la valeur de son consentement.
Par défaut, ce lien pointe directement vers l’iframe de consentement : l’utilisateur cliquant sur le lien se verra rediriger vers l’URL de l’iframe, https://core.fairandsmart.com/api/consents/<serial>?t=<token>, qui s’affichera sans éléments de contexte.
À partir de la version 20.11.01 (backend core v.5.2.0), il est possible de passer un lien arbitraire permettant d'éventuellement contextualiser l’iframe de consentement, par exemple en renvoyant directement vers la page sur laquelle l’iframe est présentée.
les snippets sont volontairement gardés au plus simple (pas de contrôle d’erreur, de gestion des sessions etc … ).
Contenu de cette documentation :
Principe de fonctionnement
On part du principe que l’utilisateur se voit présenter le formulaire via une iframe sur la page https://mon-site/consentement .
L’idée est que le lien présent dans l’email envoyé à l’utilisateur prenne la valeur https://mon-site/consentement ; ainsi quand il cliquera dessus il aboutira sur la page lui permettant de modifier son consentement.
Si l’identifiant d’utilisateur - paramètre userid - est réutilisé d’un appel sur l’autre, le formulaire s’affichera avec les réponses précédemment données.
Cinématique
Une fois l’intégration réalisée, la cinématique se déroule ainsi :
l’utilisateur se rend sur la page présentant l’iframe de consentement ;
le backend lui présente un formulaire paramétré de manière à :
lui envoyer un email ;
contenant le lien vers la page présentant l’iframe de consentement ;
l’utilisateur soumet son consentement ;
l’utilisateur reçoit un email contenant un lien pointant vers la page présentant l’iframe de consentement ;
l’utilisateur clique sur le lien et abouti à la page présentant l’iframe de consentement.
Obtention d’une URL de formulaire de consentement
En se basant sur l' Intégration d'un modèle de consentement | Obtention d’une URL de formulaire de consentement ; on modifie le code de manière à renseigner email et URL :
function getFormUrl($uuid, $email, $token)
{
$api_url = "https://core.fairandsmart.com/api";
$organisation_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
$model_id_or_alias = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY";
$host = $_SERVER['HTTP_HOST'];
$port = "";
$proto = isset($_SERVER['HTTPS']) ? "https" : "http";
$context = [
"userid" => $uuid,
"country" => "FR",
"language" => "fr",
"optoutEmail" => $email,
"optoutEmailLink" => "https://mon-site/consentement",
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $api_url . "/organisations/" . $organisation_id . "/consents/" . $model_id_or_alias . "/endpoint");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($context));
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Authorization: Bearer $token", "Content-Type: application/json"));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
}
Coté HTML :
<html lang="fr">
<body>
<iframe src="<?php echo getFormUrl(getUserId(), getUserEmail(), getToken()) ?>" width="100%" name="consent"></iframe>
</body>
</html>
Le code des méthodes getUserId()
, getUserEmail()
, getToken()
n’est pas explicité, mais peut par exemple récupérer les paramètres dans l’URL ($_GET), dans la session ($_SESSION), etc …
Code source
Retrouvez une version plus complète de ce code sur github : https://github.com/fairandsmart/consent-iframe-integration-test
Pour aller plus loin