AMP for Email でのリクエストの認証

動的なパーソナライズされたメール コンテンツでは、ユーザーの認証が必要になることがよくあります。ただし、ユーザーデータを保護するため、Gmail 内の AMP メールから行われたすべての HTTP リクエストはプロキシされ、Cookie が削除されます。

AMP メールから送信されたリクエストを認証するには、アクセス トークンを使用します。

アクセス トークン

アクセス トークンを使用してユーザーを認証できます。アクセス トークンはメールの送信者によって提供され、チェックされます。送信者はトークンを使用して、AMP メールにアクセスできるユーザーのみがメール内のリクエストを行えるようにします。アクセス トークンは、暗号的に安全で、時間とスコープが制限されている必要があります。リクエストの URL に含まれています。

この例では、<amp-list> を使用して認証済みデータを表示する方法を示します。

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

同様に、<amp-form> を使用する場合は、アクセス トークンを 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>

次の例では、ログインしたユーザーがアカウントにメモを追加して後で表示できる、架空のメモ作成サービスを想定しています。サービスは、ユーザー jane@example.com に、以前に作成したメモのリストを含むメールを送信したいと考えています。現在のユーザーのメモのリストは、エンドポイント https://example.com/personal-notes で JSON 形式で取得できます。

メールを送信する前に、サービスは jane@example.com: A3a4roX9x 用の暗号的に安全な限定使用アクセス トークンを生成します。アクセス トークンは、URL クエリ内のフィールド名 exampletoken に含まれています。

<amp-list src="https://example.com/personal-notes?exampletoken=A3a4roX9x" height="300">
  <template type="amp-mustache">
    <p>{{note}}</p>
  </template>
</amp-list>

エンドポイント https://example.com/personal-notes は、exampletoken パラメータを検証し、トークンに関連付けられたユーザーを見つける役割を担います。

詳細については、使用制限付きアクセス トークンをご覧ください。