Authentification des requêtes sur une page AMP pour les e-mails

Le contenu d'e-mail personnalisé dynamique nécessite souvent une authentification de l'utilisateur. Toutefois, pour protéger les données utilisateur, toutes les requêtes HTTP effectuées à partir d'e-mails AMP dans Gmail sont transmis par proxy et supprimés des cookies.

Pour authentifier les demandes effectuées à partir d'e-mails AMP, vous pouvez utiliser jetons d'accès.

Jetons d'accès

Vous pouvez utiliser des jetons d'accès pour authentifier l'utilisateur. Les jetons d'accès sont fournies et vérifiées par l'expéditeur de l'e-mail. L'expéditeur utilise les jetons pour s'assurer que seuls les utilisateurs ayant accès à l'e-mail AMP peuvent effectuer les demandes contenues dans cet e-mail. Les jetons d'accès doivent être sécurisés de manière cryptographique dont le champ d'application est limité. Ils sont inclus dans l'URL de la requête.

Cet exemple montre comment utiliser <amp-list> pour afficher des données authentifiées:

<amp-list src="https://example.com/endpoint?token=REPLACE_WITH_YOUR_ACCESS_TOKEN"
  height="300">
  <template type="amp-mustache">
    ...
  </template>
</amp-list>

De même, lorsque vous utilisez <amp-form>, placez votre jeton d'accès dans action-xhr URL.

<form action-xhr="https://example.com/endpoint?token=REPLACE_WITH_YOUR_ACCESS_TOKEN" method="post">
  <input type="text" name="data">
  <input type="submit" value="Send">
</form>

Exemple

L'exemple suivant considère un service de prise de notes hypothétique qui permet utilisateurs connectés pour ajouter des notes à leur compte et les consulter ultérieurement. Le service souhaite envoyer un e-mail à un utilisateur, jane@example.com, qui contient une liste de des notes qu'il a prises précédemment. La liste des notes de l'utilisateur actuel est disponible au point de terminaison https://example.com/personal-notes au format JSON.

Avant d'envoyer l'e-mail, le service génère un code jeton d'accès à usage limité pour jane@example.com: A3a4roX9x Le jeton d'accès est inclus dans le nom de champ exampletoken dans la requête d'URL:

<amp-list src="https://example.com/personal-notes?exampletoken=A3a4roX9x" height="300">
  <template type="amp-mustache">
    <p>{{note}}</p>
  </template>
</amp-list>

Le point de terminaison https://example.com/personal-notes est chargé de valider le paramètre exampletoken et en recherchant l'utilisateur associé au jeton.

Pour en savoir plus, consultez Jetons d'accès à usage limité :