이메일용 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-notesexampletoken 매개변수를 확인하고 토큰과 연결된 사용자를 찾는 일을 담당합니다.

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