Google 로그인에서 이전

이 가이드에서는 인증을 위해 자바스크립트 라이브러리를 이전 Google 로그인 플랫폼 라이브러리에서 최신 Google ID 서비스 라이브러리로 이전하는 데 필요한 변경사항과 단계를 설명합니다.

클라이언트가 자바스크립트용 Google API 클라이언트 라이브러리 또는 다른 이전 라이브러리를 승인에 사용하는 경우 자세한 내용은 Google ID 서비스로 이전을 참조하세요.

인증 및 승인

인증은 사용자가 누구인지 설명하며 일반적으로 사용자 가입 또는 로그인이라고 합니다. 승인은 데이터나 리소스에 대한 액세스 권한을 부여하거나 거부하는 프로세스입니다. 예를 들어 앱이 사용자의 Google Drive에 액세스하기 위해 사용자의 동의를 요청합니다.

이전 Google 로그인 플랫폼 라이브러리와 마찬가지로 새로운 Google ID 서비스 라이브러리는 인증 및 승인 프로세스를 모두 지원하도록 빌드되었습니다.

그러나 최신 라이브러리는 개발자가 Google 계정을 앱에 통합하는 복잡성을 줄이기 위해 두 프로세스를 분리합니다.

인증에만 관련된 사용 사례인 경우 이 페이지를 계속 읽어보세요.

사용 사례에 승인이 포함된 경우 사용자 승인 작동 방식Google ID 서비스로 이전을 읽고 애플리케이션에서 개선된 새 API를 사용하는지 확인합니다.

변경된 내용

새로운 Google ID 서비스 라이브러리는 사용자를 위해 여러 사용성 개선사항을 제공합니다. 주요 특징은 다음과 같습니다.

  • 간편한 원탭 및 자동 로그인 흐름을 새롭게 도입하여 개별 단계 수를 줄여줍니다.
  • 사용자 맞춤설정이 적용된 새로운 로그인 버튼,
  • 웹 전반에서 일관된 브랜딩과 균일한 로그인 동작을 통해 이해와 신뢰를 개선하고,
  • 콘텐츠에 빠르게 액세스할 수 있습니다. 사용자는 먼저 로그인이나 계정 페이지를 방문하지 않고도 사이트 어디에서든 직접 가입하고 로그인할 수 있습니다.

Google은 개발자를 위해 복잡성을 줄이고 보안을 강화하며 가능한 한 신속하게 통합을 구현하는 데 중점을 두었습니다. 개선된 기능은 다음과 같습니다.

  • 사이트의 정적 콘텐츠에 사용자 로그인을 추가하는 옵션인
  • 로그인 인증을 승인 및 사용자 데이터 공유로부터 분리하므로 더 이상 사용자를 사이트에 로그인하는 데 OAuth 2.0 통합의 복잡성이 필요하지 않습니다.
  • 팝업 모드와 리디렉션 모드가 모두 계속 지원되지만 Google의 OAuth 2.0 인프라는 이제 백엔드 서버의 로그인 엔드포인트로 리디렉션되므로
  • 이전 Google ID 및 Google API 자바스크립트 라이브러리의 기능을 새로운 단일 라이브러리로 통합
  • 이제 프로미스의 사용 여부를 결정해야 하며, getter 스타일 함수를 통한 간접은 편의를 위해 삭제되었습니다.

로그인 마이그레이션 예시

기존 Google 로그인 버튼에서 이전 중이며 사용자가 사이트에 로그인하는 데만 관심이 있다면 가장 간단한 방법은 새로운 맞춤설정 버튼으로 업데이트하는 것입니다. 이렇게 하려면 자바스크립트 라이브러리를 교체하고 새 로그인 객체를 사용하도록 코드베이스를 업데이트하면 됩니다.

라이브러리 및 구성

이전 Google 로그인 플랫폼 라이브러리인 apis.google.com/js/platform.jsJavaScript용 Google API 클라이언트 라이브러리(gapi.client)가 더 이상 사용자 인증과 승인에 필요하지 않습니다. 이 라이브러리는 새로운 단일 Google ID 서비스 자바스크립트 라이브러리인 accounts.google.com/gsi/client로 대체되었습니다.

로그인에 사용된 이전 세 가지 JavaScript 모듈 api, client, platform는 모두 apis.google.com에서 로드됩니다. 이전 라이브러리가 사이트에 포함될 수 있는 위치를 식별하는 데 도움이 되도록 일반적으로 다음을 실행합니다.

  • 기본 로그인 버튼이 apis.google.com/js/platform.js을 로드합니다.
  • 맞춤 버튼 그래픽이 apis.google.com/js/api:client.js를 로드함
  • gapi.client를 직접 사용하면 apis.google.com/js/api.js이 로드됩니다.

대부분의 경우 기존 웹 애플리케이션 클라이언트 ID 사용자 인증 정보를 계속 사용할 수 있습니다. 이전하는 동안 OAuth 2.0 정책을 검토하고 Google API 콘솔을 사용하여 다음 클라이언트 설정을 확인하고 필요한 경우 업데이트하는 것이 좋습니다.

  • 테스트 앱과 프로덕션 앱은 별도의 프로젝트를 사용하며 고유한 클라이언트 ID를 가지고 있으므로
  • OAuth 2.0 클라이언트 ID 유형이 '웹 애플리케이션'임
  • HTTPS는 승인된 자바스크립트 출처 및 리디렉션 URI에 사용됩니다.

영향을 받은 코드 식별 및 테스트

디버그 쿠키를 사용하면 영향을 받은 코드를 찾고 지원 중단 후 동작을 테스트할 수 있습니다.

크거나 복잡한 앱에서는 gapi.auth2 모듈 지원 중단의 영향을 받는 모든 코드를 찾기 어려울 수 있습니다. 곧 지원 중단될 기능의 기존 사용을 Console에 로깅하려면 G_AUTH2_MIGRATION 쿠키의 값을 informational로 설정합니다. 선택적으로 콜론 다음에 키 값을 추가하여 세션 저장소에도 로깅합니다. 로그인 후 사용자 인증 정보를 검토하거나 수집된 로그를 나중에 분석할 수 있도록 백엔드로 전송합니다. 예를 들어 informational:showauth2useshowauth2use라는 세션 스토리지 키에 출처와 URL을 저장합니다.

gapi.auth2 모듈이 더 이상 로드되지 않을 때 앱 동작을 확인하려면 G_AUTH2_MIGRATION 쿠키의 값을 enforced로 설정합니다. 이를 통해 시행일 전에 지원 중단 이후의 동작을 테스트할 수 있습니다.

가능한 G_AUTH2_MIGRATION 쿠키 값은 다음과 같습니다.

  • enforced gapi.auth2 모듈을 로드하지 않습니다.
  • informational 지원 중단된 기능 사용을 JS 콘솔에 로깅합니다. 또한 선택적 키 이름(informational:key-name)이 설정된 경우 세션 저장소에 로깅합니다.

사용자 영향을 최소화하려면 프로덕션 환경에서 사용하기 전에 먼저 개발 및 테스트 중에 이 쿠키를 로컬에서 설정하는 것이 좋습니다.

HTML 및 자바스크립트

이 인증 전용 로그인 시나리오에서는 예시 코드와 기존 Google 로그인 버튼의 렌더링을 보여줍니다. 팝업 또는 리디렉션 모드에서 선택하여 인증 응답이 자바스크립트 콜백 또는 백엔드 서버 로그인 엔드포인트로의 보안 리디렉션에 의해 처리되는 방식의 차이점을 확인하세요.

앞서

Google 로그인 버튼을 렌더링하고 콜백을 사용하여 사용자의 브라우저에서 직접 로그인을 처리합니다.

<html>
  <body>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    <div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
  </body>
</html>

리디렉션 모드

사용자의 브라우저에서 백엔드 서버 로그인 엔드포인트로의 AJAX 호출로 끝나는 Google 로그인 버튼을 렌더링합니다.

<html>
  <body>
    <script src="https://apis.google.com/js/platform.js" async defer></script>
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
    <div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
    <script>
      function handleCredentialResponse(googleUser) {
        ...
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'https://yourbackend.example.com/tokensignin');
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onload = function() {
          console.log('Signed in as: ' + xhr.responseText);
        };
        xhr.send('idtoken=' + id_token);
      }
    </script>
  </body>
</html>

렌더링됨

새로운 시각적 속성은 맞춤 버튼을 만드는 초기 방법을 간소화하고, gapi.signin2.render() 호출을 없애며, 사이트에서 이미지와 시각적 애셋을 호스팅하고 유지관리할 필요가 없습니다.

Google 로그인

Google 로그인 상태

사용자 로그인 상태 업데이트 버튼 텍스트

새로운 방식

인증 전용 로그인 시나리오에서 새 라이브러리를 사용하려면 팝업 또는 리디렉션 모드에서 선택하고 코드 샘플을 사용하여 로그인 페이지의 기존 구현을 바꿉니다.

콜백을 사용하여 사용자의 브라우저에서 직접 로그인을 처리합니다.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async defer></script>
    <div id="g_id_onload"
         data-client_id="YOUR_CLIENT_ID"
         data-callback="handleCredentialResponse">
    </div>
    <div class="g_id_signin" data-type="standard"></div>
  </body>
</html>

리디렉션 모드

Google은 data-login_url 속성에 지정된 대로 로그인 엔드포인트를 호출합니다. 이전에는 POST 작업과 매개변수 이름을 사용자가 직접 담당했습니다. 새 라이브러리는 credential 매개변수의 엔드포인트에 ID 토큰을 게시합니다. 마지막으로 백엔드 서버에서 ID 토큰을 확인합니다.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async defer></script>
    <div id="g_id_onload"
         data-client_id="YOUR_CLIENT_ID"
         data-ux_mode="redirect"
         data-login_uri="https://www.example.com/your_login_endpoint">
    </div>
    <div class="g_id_signin" data-type="standard"></div>
  </body>
</html>

렌더링됨

Visual-attributes를 사용하여 Google 계정으로 로그인 버튼의 크기, 모양, 색상을 맞춤설정합니다. 맞춤설정된 버튼과 함께 원탭 팝업을 표시하여 로그인율을 개선합니다.

Google 계정으로 로그인
버튼 원탭 팝업

사용자 로그인 상태가 '로그인'에서 '로그인됨'으로 버튼 텍스트를 업데이트하지 않습니다. 동의를 제공한 후 또는 재방문 시 맞춤설정된 버튼에 사용자 이름, 이메일, 프로필 사진이 포함됩니다.

이 인증 전용 예에서는 새로운 accounts.google.com/gsi/client 라이브러리, g_id_signin 클래스, g_id_onload 객체가 이전의 apis.google.com/js/platform.js 라이브러리와 g-signin2 객체를 대체합니다.

예시 코드는 새로운 맞춤설정된 버튼을 렌더링하는 것 외에 새로운 원탭 팝업도 표시합니다. 맞춤설정된 버튼을 표시할 때마다 가입 및 로그인 시 사용자의 불편을 최소화하기 위해 원탭 팝업도 표시하는 것이 좋습니다.

로그인 마찰 증가로 인해 권장되지는 않지만 새로운 맞춤설정 버튼은 원탭 대화상자를 동시에 표시하지 않고 단독으로 표시할 수 있습니다. 이렇게 하려면 data-auto_prompt 속성을 false로 설정합니다.

HTML 및 자바스크립트 API

이전 예는 새로운 HTML API를 사용하여 웹사이트에 로그인을 추가하는 방법을 보여줍니다. 또는 기능적으로 동등한 JavaScript API를 사용하거나 사이트 전반에서 HTML과 JavaScript API를 혼합하여 사용할 수 있습니다.

콜백 유형 및 색상, 크기, 모양, 텍스트, 테마와 같은 속성 등의 버튼 맞춤설정 옵션을 대화형으로 보려면 코드 생성기를 참고하세요. 이를 통해 다양한 옵션을 빠르게 비교하고 사이트에서 사용할 HTML 스니펫을 생성할 수 있습니다.

원탭으로 어느 페이지에서나 로그인

원탭은 사용자가 사이트에 가입하거나 로그인할 수 있는 간편한 새로운 방법입니다. 사이트의 모든 페이지에서 바로 사용자 로그인을 사용 설정할 수 있고 사용자가 전용 로그인 페이지를 방문할 필요가 없습니다. 즉, 사용자에게 로그인 페이지 이외의 페이지에서 가입하고 로그인할 수 있는 유연성을 제공하여 가입 및 로그인의 마찰을 줄일 수 있습니다.

모든 페이지에서 로그인을 사용 설정하려면 공유 헤더, 바닥글 또는 전체 사이트에 포함된 기타 객체에 g_id_onload를 포함하는 것이 좋습니다.

또한 로그인 또는 사용자 계정 관리 페이지에만 맞춤설정된 로그인 버튼을 표시하는 g_id_signin를 추가하는 것이 좋습니다. 다른 제휴 ID 공급업체 버튼 및 사용자 이름 및 비밀번호 입력 필드와 함께 이 버튼을 표시하여 사용자에게 가입 또는 로그인 선택권을 제공합니다.

토큰 응답

사용자 로그인 시 더 이상 OAuth 2.0 승인 코드, 액세스 토큰 또는 갱신 토큰을 이해하거나 사용하지 않아도 됩니다. 대신 로그인 상태와 사용자 프로필을 공유하는 데 JSON 웹 토큰(JWT) ID 토큰이 사용됩니다. 또한 더 이상 사용자 프로필 데이터로 작업할 때 'getter' 스타일 접근자 메서드를 사용할 필요가 없습니다.

Google이 서명한 보안 JWT ID 토큰 사용자 인증 정보가 다음 중 하나로 반환됩니다.

  • 팝업 모드에서 사용자의 브라우저 기반 자바스크립트 콜백 핸들러로 전달
  • Google 계정으로 로그인 버튼 ux_moderedirect로 설정된 경우 로그인 엔드포인트로 연결되는 Google 리디렉션을 통해 백엔드 서버에 전송됩니다.

두 경우 모두 다음을 삭제하여 기존 콜백 핸들러를 업데이트합니다.

대신 새 JWT CredentialResponse 객체의 credential 하위 필드에 대한 직접 참조를 사용하여 사용자 프로필 데이터로 작업합니다.

또한 리디렉션 모드에 한해 교차 사이트 요청 위조 (CSRF)를 방지하고 백엔드 서버에서 Google ID 토큰을 확인합니다.

사용자가 사이트와 상호작용하는 방식을 더 잘 이해하기 위해 CredentialResponse의 select_by 필드를 사용하여 사용자 동의 결과와 사용된 특정 로그인 흐름을 확인할 수 있습니다.

사용자가 웹사이트에 처음 로그인하면 Google은 사용자에게 계정 프로필을 앱과 공유하는 데 동의하라는 메시지를 표시합니다. 사용자가 동의한 후에만 사용자 프로필이 ID 토큰 사용자 인증 정보 페이로드로 앱에 공유됩니다. 이 프로필에 대한 액세스 권한을 취소하는 것은 이전 로그인 라이브러리에서 액세스 토큰을 취소하는 것과 같습니다.

사용자는 https://myaccount.google.com/permissions를 방문하여 권한을 취소하고 자신의 Google 계정에서 앱을 연결 해제할 수 있습니다. 또는 개발자가 구현한 API 호출을 트리거하여 앱에서 직접 연결을 해제할 수도 있습니다. 이전 disconnect 메서드는 최신 revoke 메서드로 대체되었습니다.

사용자가 플랫폼에서 계정을 삭제하면 revoke를 사용하여 Google 계정에서 앱을 연결 해제하는 것이 좋습니다.

이전에는 앱에서 사용자의 로그아웃을 관리하는 데 auth2.signOut()를 사용할 수 있었습니다. auth2.signOut() 사용을 모두 삭제하고 앱에서 사용자 세션 상태 및 로그인 상태를 직접 관리해야 합니다.

세션 상태 및 리스너

새 라이브러리는 웹 앱의 로그인 상태 또는 세션 상태를 유지하지 않습니다.

Google 계정의 로그인 상태와 앱의 세션 상태 및 로그인 상태는 별개의 개념입니다.

사용자의 Google 계정 로그인 상태는 앱과 앱의 서로 독립적입니다. 단, 사용자가 성공적으로 인증되고 Google 계정에 로그인한 것이 로그인 순간은 예외입니다.

Google 계정으로 로그인, 원탭 또는 자동 로그인이 사이트에 포함된 경우 사용자는 먼저 Google 계정에 로그인하여 다음을 수행해야 합니다.

  • 사이트에 처음 가입하거나 로그인할 때 자신의 사용자 프로필 공유에 대한 동의를
  • 사이트에 다시 방문할 때 로그인하는 경우

사용자는 웹사이트에서 활성 상태인 로그인 세션을 유지하면서 로그인 또는 로그아웃 상태를 유지하거나 다른 Google 계정으로 전환할 수 있습니다.

이제 웹 앱 사용자의 로그인 상태를 직접 관리해야 합니다. 이전에는 Google 로그인을 통해 사용자의 세션 상태 모니터링이 지원되었습니다.

auth2.attachClickHandler() 및 등록된 콜백 핸들러에 대한 참조를 모두 삭제합니다.

이전에는 사용자의 Google 계정의 로그인 상태 변경사항을 공유하는 데 리스너가 사용되었습니다. 리스너는 더 이상 지원되지 않습니다.

listen(), auth2.currentUser, auth2.isSignedIn에 대한 참조를 모두 삭제합니다.

쿠키

Google 계정으로 로그인은 쿠키를 제한적으로만 사용하며 이러한 쿠키에 대한 설명이 이어서 제공됩니다. Google에서 사용하는 다른 쿠키 유형에 대한 자세한 내용은 Google의 쿠키 사용 방식을 참조하세요.

이전 Google 로그인 플랫폼 라이브러리에서 설정한 G_ENABLED_IDPS 쿠키는 더 이상 사용되지 않습니다.

새 Google ID 서비스 라이브러리는 구성 옵션에 따라 이러한 교차 도메인 쿠키를 선택적으로 설정할 수 있습니다.

  • g_state는 사용자 로그아웃 상태를 저장하며 원탭 팝업 또는 자동 로그인을 사용할 때 설정됩니다.
  • g_csrf_tokenCSRF 공격을 방지하는 데 사용되는 이중 제출 쿠키이며 로그인 엔드포인트가 호출될 때 설정됩니다. 로그인 URI 값은 명시적으로 설정하거나 현재 페이지의 URI로 기본 설정할 수 있습니다. 다음을 사용할 때 다음과 같은 조건에서 로그인 엔드포인트가 호출될 수 있습니다.

    • data-ux_mode=redirect를 사용하거나 data-login_uri가 설정된 경우 HTML API

    • JavaScript API: ux_mode=redirect가 포함되고 원탭 또는 자동 로그인을 표시하는 데 google.accounts.id.prompt()가 사용되지 않습니다.

쿠키를 관리하는 서비스가 있는 경우 새 쿠키 2개를 추가하고 이전이 완료되면 이전 쿠키를 삭제해야 합니다.

여러 도메인이나 하위 도메인을 관리하는 경우 g_state 쿠키 작업에 관한 자세한 내용은 하위 도메인에서 원탭 표시를 참고하세요.

사용자 로그인을 위한 객체 마이그레이션 참조

변경 전 신규 메모
자바스크립트 라이브러리
apis.google.com/js/platform.js accounts.google.com/gsi/client 기존 항목을 새 항목으로 교체합니다.
apis.google.com/js/api.js accounts.google.com/gsi/client 기존 항목을 새 항목으로 교체합니다.
GoogleAuth 객체 및 관련 메서드에 대해 설명합니다.
GoogleAuth.AttachClickHandler() JS 및 HTML의 IdConfiguration.callback data-callback 기존 항목을 새 항목으로 교체합니다.
GoogleAuth.currentUser.get() CredentialResponse 더 이상 필요하지 않은 대신 CredentialResponse를 사용하세요.
GoogleAuth.currentUser.listen() 삭제. 사용자의 현재 Google 로그인 상태를 확인할 수 없습니다. 사용자가 동의를 얻고 로그인하려면 Google에 로그인해야 합니다. CredentialResponse의 select_by 필드는 사용된 로그인 방법과 사용자 동의의 결과를 결정하는 데 사용될 수 있습니다.
GoogleAuth.disconnect() google.accounts.id.revoke 기존 항목을 새 항목으로 교체합니다. https://myaccount.google.com/permissions를 통해서도 취소할 수 있습니다.
GoogleAuth.grantofflineAccess() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
GoogleAuth.isSignedIn.get() 삭제. 사용자의 현재 Google 로그인 상태를 확인할 수 없습니다. 사용자가 동의를 얻고 로그인하려면 Google에 로그인해야 합니다.
GoogleAuth.isSignedIn.listen() 삭제. 사용자의 현재 Google 로그인 상태를 확인할 수 없습니다. 사용자가 동의를 얻고 로그인하려면 Google에 로그인해야 합니다.
GoogleAuth.signIn() 삭제. g_id_signin 요소의 HTML DOM 로드 또는 google.accounts.id.renderButton에 대한 JS 호출은 사용자 Google 계정 로그인을 트리거합니다.
GoogleAuth.signOut() 삭제. 앱과 Google 계정의 사용자 로그인 상태는 서로 별개입니다. Google에서는 앱의 세션 상태를 관리하지 않습니다.
GoogleAuth.then() 삭제. GoogleAuth는 지원 중단되었습니다.
GoogleUser 개체 및 관련 메서드에 대해 설명합니다.
GoogleUser.disconnect() google.accounts.id.revoke 기존 항목을 새 항목으로 교체합니다. https://myaccount.google.com/permissions를 통해서도 취소할 수 있습니다.
GoogleUser.getAuthResponse()
GoogleUser.getBasicProfile() CredentialResponse BasicProfile 메서드 대신 credential 및 하위 필드를 직접 사용합니다.
GoogleUser.getGrantedScopes() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
GoogleUser.getHostedDomain() CredentialResponse 대신 credential.hd를 직접 사용하세요.
GoogleUser.getId() CredentialResponse 대신 credential.sub를 직접 사용하세요.
GoogleUser.grantofflineAccess() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
GoogleUser.grant() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
GoogleUser.hasGrantedScopes() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
GoogleUser.isSignedIn() 삭제. 사용자의 현재 Google 로그인 상태를 확인할 수 없습니다. 사용자가 동의를 얻고 로그인하려면 Google에 로그인해야 합니다.
GoogleUser.reloadAuthResponse() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2 객체 및 관련 메서드를 대체합니다.
gapi.auth2.승인 구성 객체 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.승인 응답 객체 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.AuthResponse 객체 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.승인() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.ClientConfig() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.getAuthInstance() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.init() 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.offlineAccessOptions 객체 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.auth2.SignInOptions 객체 삭제. OAuth 2.0 액세스 토큰과 범위가 ID 토큰으로 대체되었습니다.
gapi.signin2 객체 및 관련 메서드가 사용됩니다.
gapi.signin2.render()를 사용합니다. 삭제. g_id_signin 요소의 HTML DOM 로드 또는 google.accounts.id.renderButton에 대한 JS 호출은 사용자 Google 계정 로그인을 트리거합니다.