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

A menudo, el contenido de los correos electrónicos personalizados dinámicos requiere la autenticación del usuario. Sin embargo, para proteger los datos del usuario, todas las solicitudes HTTP que se realicen desde el interior de correos electrónicos de AMP en Gmail se envían a través de un proxy y se quitan de las cookies.

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

Tokens de acceso

Puedes usar tokens de acceso para autenticar al usuario. El remitente del correo electrónico suministra y verifica los tokens de acceso. El remitente usa los tokens para asegurarse de que solo aquellos con acceso al correo electrónico de AMP puedan realizar las solicitudes incluidas en ese correo electrónico. Los tokens de acceso deben ser seguros a nivel criptográfico y tener limitaciones en el tiempo y el 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>

De la misma manera, cuando uses <amp-form>, coloca tu token de acceso en la 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>

Ejemplo

En el siguiente ejemplo, se considera un servicio hipotético para tomar notas que permite a los usuarios que accedieron a su cuenta agregar notas a su cuenta y verlas más tarde. El servicio desea enviar un correo electrónico a un usuario, jane@example.com, que incluye una lista de notas que tomó antes. 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 criptográficamente seguro para jane@example.com: A3a4roX9x. El token de acceso se incluye en el nombre de campo exampletoken dentro de la consulta de 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 al usuario asociado con el token.

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