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

El contenido dinámico y personalizado de los correos electrónicos suele requerir la autenticación del usuario. Sin embargo, para proteger los datos del usuario, todas las solicitudes HTTP que se realizan desde los correos electrónicos de AMP en Gmail se pasan a través de un proxy y se les quitan 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 proporciona y verifica los tokens de acceso. El remitente usa los tokens para garantizar que solo las personas que tengan acceso al correo electrónico de AMP puedan realizar las solicitudes que se incluyen en él. Los tokens de acceso deben ser criptográficamente seguros y limitados en el tiempo y el alcance. Se incluyen en la URL de la solicitud.

En este ejemplo, se muestra cómo usar <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 URL de 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 de toma de notas que permite a los usuarios que accedieron 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 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 seguro criptográficamente para jane@example.com: A3a4roX9x. El token de acceso se incluye en el nombre del 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.