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 em e-mails do AMP no Gmail são encapsuladas e desprovidas de cookies.

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

Tokens de acesso

Você pode 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 do AMP possam fazer as solicitações contidas nele. Os tokens de acesso precisam ser criptograficamente seguros e limitados no tempo e escopo. 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 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 que ele fez 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 seguro criptograficamente para jane@example.com: A3a4roX9x. O token de acesso é 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.