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

Les contenus d'e-mails personnalisés dynamiques nécessitent souvent l'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 proxyées et privées de cookies.

Pour authentifier les requêtes effectuées à partir d'e-mails AMP, vous pouvez utiliser des 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 fournis et vérifiés par l'expéditeur de l'e-mail. L'expéditeur utilise les jetons pour s'assurer que seules les personnes ayant accès à l'e-mail AMP peuvent effectuer les requêtes contenues dans cet e-mail. Les jetons d'accès doivent être sécurisés de manière cryptographique et limités dans le temps et la portée. 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 l'URL action-xhr.

<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 concerne un service de prise de notes hypothétique qui permet aux utilisateurs connectés d'ajouter des notes à leur compte et de les consulter plus tard. Le service souhaite envoyer un e-mail à un utilisateur, jane@example.com, qui inclut une liste de 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 jeton d'accès à usage limité sécurisé par cryptographie 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 de trouver l'utilisateur associé au jeton.

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