이메일용 AMP에서 요청 인증

동적 맞춤 이메일 콘텐츠에는 사용자를 인증해야 하는 경우가 많습니다. 하지만 사용자 데이터를 보호하기 위해 Gmail 내 AMP 이메일에서 이루어지는 모든 HTTP 요청은 프록시 처리되고 쿠키가 삭제됩니다.

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 매개변수를 검증하고 토큰과 연결된 사용자를 찾는 역할을 합니다.

자세한 내용은 사용이 제한된 액세스 토큰을 참고하세요.