2019년 12월 8일 일요일

[번역]Account linking with Google Sign-In - Google Assistant - Action on Google

Google Sign-In 으로 계정 연결하기

원문그대로 번역했으나, 화면이 현재 화면과 다름. 내용만 참조할 것.

Assistant 의 Google Sign-in은 사용자와 개발자 모두에게 Account linking 과 Account creation하기 가장 단순하고 쉬운 사용자환경을 제공한다. Action은 conversation 동안, 사용자명, 이메일, 프로필사진 등의 사용자의 구글 프로필정보 에 접근을 요청할 수 있다.
프로필 정보는 Action에서 개인화된 user experience 를 만드는데 사용될 수 있다.  만약, 다른 플랫폼용 앱이 있고, Google Sigh-In을 사용하면, 그 시스템에 기존 사용자 계정을 찾아 연결 가능하고, 새 계정 생성 또는 직접 communication 채널을 만드는것도 가능해진다.
Google Sign-In 으로 Account linking을 수행하기 위해선, 사용자에게 Google 프로필 접근 허용 동의를 요청한다.그런 다음, 시스템에서 사용자를 식별하여 프로필 정보(예:이메일 주소)를 사용한다.

Google Sign-In account linking 구현

아래 섹션의 단계에 따라 Action에 Google Sign-In account linking을 추가한다.

note : 금융 관련 계정 연결은 작업 검토에 6주 소요되므로, 릴리즈 계획에 시간 고려 필요.금융 서비스 정책 참조

프로젝트 설정

Google Sign-In account linking 을 사용하도록 프로젝트를 설정하려면, 아래 단계를 따름.

  1. Action Console을 열고 프로젝트를 선택
  2. Develop 탭을 클릭해서, Account Linking을 선택
  3. Account Creation에서 'Yes, allow users to sign up for new accounts via voice' 선택
  4. Linking type에서 'Google Sign In' 을 선택
  5. Client Information을 열고, Client ID issued by Google to your Actions 항목 값을 메모
  6. Save 클릭

인증 flow 시작

주의 : Action의 conversation 시작 시, 계정 연결 요청하지 말것.  대신에, 인증되지 않은 사용자에게 게스트 flow를 제공하여, Action의 작동 방식을 보여준 후에, 진행이 필요한경우에만 Account linking 을 요청할것.  계정문제때문에 사용자가 떠나는 경우가 지속적으로 발생하게되면, 구글은 Action을 적극적으로 홍보하지 않기 때문에, Action 사용자 트래픽이 감소하게됨.
인증된 사용자만 Account linking을 수행할 수 있음. Guest의 경우, account linking은 실패함.  게스트 사용자 처리와 인증에 관한 내용 살펴볼것.

인증 flow를 시작하려면, Account Sign-in helper intent 를 사용함.

사용자가 Action이 Google 프로필에 접근할 수 있는 권한 부여 후, 액션에 대한 모든 후속요청에, 사용자의 Google 프로필 정보가 포함된 Google ID 토큰을 받게 된다.
사용자의 프로필 정보에 접근하려면, 먼저, 다음을 수행하여 토큰의 유효성점검과 디코드를 수행한다.

  1. 해당 언어에 맞는 JWT-decoding library 를 사용하여 토큰을 해독하고, Google의 공개키(JWK or PEM 형식으로 제공)를 사용하여 토큰의 서명을 확인한다.
  2. 토큰의 발행자(decoded token에 iis 필드)가 https://accounts.google.com 이고,  audience (decoded token에 aud  필드)가 Action on Google consol의 해당 프로젝트에서 발행된 Client ID issued by Google to your Actions 값인지 확인하라. 
샘플 코드는 상단 원본 링크에서 확인..

Actions on Google client library for Node.js 또는 the Java client library를 사용한다면, 프로파일 컨텐츠에 접근 권한 부여 등의 작업에서, 할당된 토큰을 디코드 또는 유효성 검증에 주의 해야한다. 아래 code snippets(코드 요약 예) 가 있다. 아래 JSON은 각각 Dialogflow와 Actions SDK의 webhook 요청을 설명한다.

다음 스니펫은 로그인에 Dialogflow을 사용한다.
샘플 코드는 상단 원본 링크에서 확인..

다음 스니펫은 로그인에 Actions SDK를 사용한다.
샘플 코드는 상단 원본 링크에서 확인..

Handle data access requests (데이터 접근 요청 처리)

데이터 접근 요청을 처리하려면 Google ID 토큰이 제시한 사용자가 DB에 먼저 등록되어있어야 한다. 아래 스니펫은 사용자 계정이 이미 Firestore 데이터베이스에 있는지 확인하는 방법 예시임.
샘플 코드는 상단 원본 링크에서 확인..






댓글 없음: