Google 로그인 개념 가이드 (Dialogflow)

가장 원활한 연결을 제공하는 어시스턴트용 Google 로그인 (GSI) 환경을 조성하고 개발자가 구현할 수 있는 가장 쉬운 흐름입니다. GSI를 사용하면 작업에서 사용자의 Google 프로필에 대한 액세스를 요청할 수 있습니다. 사용자가 동의하면 사용자의 이름, 이메일 주소, 이메일 주소 프로필 사진입니다. 그러면 작업에서 이 정보를 사용하여 사용자의 시스템에 Google 계정이 있습니다. 그렇지 않은 경우 작업에서 사용자에게 다음 사항을 묻습니다. 자신의 Google 계정을 기반으로 시스템에 새 계정을 만들고자 하는 경우 프로필 정보

GSI는 다음 중 하나라도 해당하는 경우 권장되는 계정 연결 솔루션입니다.

  • 기존 인증 시스템이 없거나 사용자에게 Google 계정이 있어야 합니다. 예를 들어 작업이 어시스턴트를 타겟팅하면 모든 사용자가 Google 있습니다.
  • 기존 인증 시스템이 있고 다음과 같은 사용자만 연결하려고 할 때 Google 계정을 사용하여 시스템에 로그인했습니다.

GSI가 적합한 솔루션인지 확인하려면 다음을 참조하세요. 계정 연결 유형 선택 페이지를 참고하세요.

핵심 용어

GSI의 작동 방식을 읽기 전에 다음 용어를 숙지하시기 바랍니다.

  • Google ID 토큰: 사용자 ID에 대한 서명된 어설션으로, 사용자의 기본 Google 프로필 정보 (이름, 이메일 주소, 프로필 사진) Google ID 토큰은 JSON 웹 토큰 (JWT).

    다음은 디코딩된 토큰의 예입니다.

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • 계정 로그인 도우미 인텐트: 호출하는 도우미 인텐트입니다. 어시스턴트에서 계정 연결 흐름을 요청합니다. 자세한 내용은 계정 로그인을 참조하세요.
    • 컨텍스트 문자열: 계정에 추가하는 맞춤설정된 문자열입니다. 사용자에게 연결해야 하는 이유를 알려주는 로그인 도우미 인텐트 계정을 만들 수 있습니다.

작동 방식

GSI의 기본 흐름은 다음과 같습니다.

  1. 작업에서 사용자에게 Google 프로필에 액세스하는 데 동의를 요청합니다.
  2. 사용자가 동의하면 작업에서 Google ID 토큰을 수신합니다. 사용자의 Google 프로필 정보가 포함됩니다.
  3. 토큰을 검증하고 디코딩하여 프로필 콘텐츠를 읽습니다. Node.js용 Actions on Google 클라이언트 라이브러리 또는 Java 클라이언트 라이브러리 토큰을 검증하고 디코딩합니다.
  4. 작업은 이 토큰을 사용하여 사용자의 Google 프로필 존재하는지 확인하는 것이 중요합니다.

    1. 로그인했다면 사용자가 이미 Google 계정 사용자는 사용자의 신원을 Google 계정에 연결한 어시스턴트
    2. 그렇지 않은 경우 사용자는 Google ID 토큰에 포함된 정보 그러면 사용자는 새 계정이 연결된 상태에서 어시스턴트와 대화를 계속할 수 있습니다.

Google 로그인 흐름

이 섹션에서는 Google 로그인에서 발생할 수 있는 다양한 흐름을 설명합니다.

흐름 1: 시스템에 사용자 정보가 존재함

다음 다이어그램은 사용자의 정보가 시스템에 이미 존재합니다.

이 경우 actions.intent.SIGN_IN 도우미 인텐트를 호출합니다. 맞춤설정할 수 있습니다. 이 인텐트는 사용자에게 Google 프로필 정보에 액세스할 수 없습니다.

사용자가 동의하면 어시스턴트는 user@gmail.com의 프로필 정보 이 경우 user@gmail.com에 대한 Google ID 토큰에 포함된 사용자의 ID가 시스템에 자동으로 연결되므로 하세요. 그러면 웹훅에서 사용자의 일반적인 주문을 읽을 수 있습니다. 이에 따라 대응해야 합니다

흐름 2: 시스템에 사용자 정보가 없는 경우

다음 다이어그램은 다음과 같은 경우 GSI에서 발생하는 엔드 투 엔드 흐름을 보여줍니다. 사용자 정보가 시스템에 존재하지 않는 경우:

이 경우 user@gmail.com이(가) 시스템에 있는 계정과 일치하지 않으므로 어시스턴트가 에서 사용자에게 새 계정을 만들 것인지 묻습니다. 사용자는 계정 생성 프로세스를 검증 기기

사용자가 계정 생성에 동의하면 서비스에서 이 정보를 사용합니다. ID 토큰 (사용자 이름 및 이메일 주소)을 있습니다. 계정이 생성되면 작업의 사용자 ID 새 Google 계정에 연결됩니다.

이 경우 사용자는 신규 고객이므로 일반적인 주문이 없습니다. 서비스에서 주문하려는 항목을 묻습니다. 나 또한 사용자에게 가장 최근 주문을 설정하고 싶은지 물어볼 수도 있습니다. 평소의 순서로 하겠습니다.