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

El contenido de correos electrónicos personalizados y dinámicos suele requerir la autenticación del usuario. Sin embargo, para proteger los datos del usuario, todas las solicitudes HTTP que se hacen desde los correos electrónicos de AMP que se encuentran en Gmail se envían por proxy y se quitan las cookies.

Para autenticar 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 utiliza 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 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 el 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 de toma de notas que permite a los usuarios que accedieron 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 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 y 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.