Cómo autenticar solicitudes en AMP para correo electrónico

El contenido de correo electrónico dinámico y personalizado suele requerir la autenticación del usuario. Sin embargo, para proteger los datos del usuario, todas las solicitudes HTTP que se realizan desde correos electrónicos AMP en Gmail se envían a través de un proxy y se les quitan las cookies.

Para autenticar las solicitudes realizadas desde correos electrónicos AMP, usa tokens de acceso.

Tokens de acceso

Puedes usar tokens de acceso para autenticar al usuario. El remitente del correo electrónico proporciona y verifica los tokens de acceso. El remitente usa los tokens para garantizar que solo aquellos que tienen acceso al correo electrónico AMP puedan realizar las solicitudes que contiene ese correo electrónico. Los tokens de acceso deben ser criptográficamente seguros y tener un límite de tiempo y alcance. Se incluyen en la URL de la solicitud.

En este ejemplo, se muestra el uso de <amp-list> para mostrar datos autenticados:

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

Del mismo modo, cuando uses <amp-form>, coloca tu token de acceso en la 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>

Ejemplo

En el siguiente ejemplo, se considera un servicio hipotético para tomar notas que permite a los usuarios registrados agregar notas a su cuenta y verlas más tarde. El servicio quiere enviar un correo electrónico a un usuario, jane@example.com, que incluya una lista de las notas que tomó anteriormente. La lista de las notas del usuario actual está disponible en el extremo https://example.com/personal-notes en formato JSON.

Antes de enviar el correo electrónico, el servicio genera un token de acceso de uso limitado y criptográficamente seguro para jane@example.com: A3a4roX9x. El token de acceso se incluye en el parámetro exampletoken dentro de la consulta de la URL:

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

El extremo https://example.com/personal-notes es responsable de validar el parámetro exampletoken y encontrar el usuario asociado con el token.

Para obtener más información, consulta Tokens de acceso de uso limitado.