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

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

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

Tokens de acesso

Use 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 AMP possam fazer as solicitações contidas nesse e-mail. Os tokens de acesso precisam ser criptograficamente seguros e com limite de tempo e escopo. Elas sã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 o 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 que fizeram login 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 anteriores. A lista de anotações do usuário atual está disponível no endpoint https://example.com/personal-notes em 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.