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

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

Para autenticar solicitações feitas de e-mails em AMP, você pode usar tokens de acesso.

Tokens de acesso

É possível usar tokens de acesso para autenticar o usuário. Tokens de acesso são fornecidos e verificados pelo remetente do e-mail. O remetente usa os tokens para garantir somente aqueles com acesso ao e-mail AMP possam fazer as solicitações contidas nesse e-mail. Os tokens de acesso devem ser criptograficamente seguros, tempo e com escopo limitado. Elas estão incluídas no URL da solicitação.

Este exemplo demonstra o uso de <amp-list> para exibir 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 seu 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 de anotações hipotético que permite usuários conectados adicionarem notas à conta e visualizá-las mais tarde. O serviço quer enviar um e-mail para um usuário, jane@example.com, que inclui uma lista de anotações feitas anteriormente. A lista das notas 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 uma token de acesso de uso limitado para jane@example.com: A3a4roX9x. O token de acesso é incluído no nome do campo exampletoken dentro da consulta do 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.