Como autenticar solicitações de e-mail em AMP

O conteúdo de e-mail dinâmico e personalizado geralmente exige a autenticação do usuário. No entanto, para proteger os dados do usuário, todas as solicitações HTTP feitas de dentro de e-mails AMP no Gmail são proxy e têm os cookies removidos.

Para autenticar solicitações feitas de e-mails AMP, use tokens de acesso.

Tokens de acesso

É possível usar tokens de acesso para autenticar o usuário. Os tokens de acesso são fornecidos e verificados pelo remetente do e-mail. O remetente usa os tokens para garantir que apenas pessoas com acesso ao e-mail AMP possam fazer as solicitações contidas nele. Os tokens de acesso precisam ser criptograficamente seguros e ter tempo e escopo limitados. Eles são incluídos no URL da solicitação.

Este exemplo demonstra o uso de <amp-list> para mostrar dados autenticados:

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

Da mesma forma, ao usar <amp-form>, coloque o token de acesso no 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>

Exemplo

O exemplo a seguir considera um serviço hipotético de anotações que permite que usuários conectados adicionem anotações à conta e as visualizem mais tarde. O serviço quer enviar um e-mail para um usuário, jane@example.com, que inclua uma lista de anotações feitas anteriormente. A lista de anotações do usuário atual está disponível no endpoint https://example.com/personal-notes no formato JSON.

Antes de enviar o e-mail, o serviço gera um token de acesso de uso limitado criptograficamente seguro para jane@example.com: A3a4roX9x. O token de acesso é incluído no parâmetro exampletoken dentro da 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>

O endpoint https://example.com/personal-notes é responsável por validar o parâmetro exampletoken e encontrar o usuário associado ao token.

Para mais informações, consulte Tokens de acesso de uso limitado.