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 de e-mails de AMP no Gmail são usadas em proxy e não incluem cookies.

Para autenticar solicitações feitas de e-mails de AMP, você pode usar 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 aqueles com acesso ao e-mail de AMP possam fazer as solicitações contidas nesse e-mail. Os tokens de acesso precisam ser criptograficamente seguros e limitados por tempo e escopo. 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 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>

Exemplo

O exemplo a seguir considera um serviço hipotético de anotações que permite que os usuários conectados adicionem notas à conta e as visualizem 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 um token de acesso de uso limitado criptograficamente seguro para jane@example.com: A3a4roX9x. O token de acesso está incluído no nome do campo 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.