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 パラメータを検証し、トークンに関連付けられているユーザーを見つけます。

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