2

나는 실용적인 해결책을 가지고있는 것처럼 보이지만 믿을 수 없을 정도로 복잡합니다!내 웹 사이트에서 Google 로그인을 사용하면 어떻게 사용자를 등록 할 수 있습니까?

첫째, 나는 몇 가지 코드를 다운로드해야합니다

<script src="https://apis.google.com/js/platform.js"></script> 

두 번째와 세 번째를, 나는 auth2 모듈을 다운로드해야합니다. 내가 비동기 인증 개체 인스턴스 얻기 위해 client_app_id 제공해야 그 후 :

gapi.load('auth2', function() { 
     gapi.auth2.init({ 
      client_id: '__________.apps.googleusercontent.com' 
     }); 
    }); 

넷째, FUH, 나는 마지막으로 로그 아웃 할 수 있습니다

  gapi.auth2.getAuthInstance().signOut().then(function() { 
        ... 
      }); 

내가 뭔가 잘못하고 있습니까? 이 일을 더 쉽게 할 수 있습니까? 일부 문서를 찾았습니다 herehere

답변

1

맞습니다. 그것은 복잡하지만 모든 필요한 단계입니다.

다소 최적화하면 platform.js보다 작은 것을 요청할 수 있습니다. 즉 https://apis.google.com/js/auth2:signin2.js

나도 콜백을 설정, 이렇게되는 일을 이런 식으로 뭔가 :

여기
<meta name="google-signin-client_id" content="{{ OAUTH2_CLIENT_ID }}"> 

<script src="https://apis.google.com/js/auth2:signin2.js?onload=googleAPILoaded"></script> 
<script> 
window.googleAPILoaded = function() { 
    gapi.auth2.init(); 
    gapi.auth2.getAuthInstance() 
    .then(function() { 
     this.signOut().then(serverSignout); 
    }); 
} 
</script> 
</head> 
+0

auth2 : packages.js가 16K있는 동안 signin2.js 파일이 15K가 있습니다. auth2 : signin2.js는 307 내부 리다이렉트를 보여주기 때문에 잠재적으로 더 길게 다운로드됩니다 – Dan

1

당신이 약간 더 우아한 방식으로 권한 프로세스의 로그인 & 부여를 초기화 Google's Sign-In button 템플릿을 사용하는 방법은 다음과 같습니다

<meta name="google-signin-client_id" content="{{ OAUTH2_CLIENT_ID }}"> 

<script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script> 

<div id="google-signin-button" 
    class="g-signin2" 
    data-width="170" 
    data-height="30" 
    data-onsuccess="onSignIn" 
    data-onfailure="onSignInFailure"> 
</div> 
function onSignIn(googleUser) { 
    var profile = googleUser.getBasicProfile(); 
    var idToken = googleUser.getAuthResponse().id_token; 
} 

function onSignOut(){ 
    var auth2 = gapi.auth2.getAuthInstance(); 
    auth2.signOut(); 
} 
+0

로그인 페이지 (gapi.auth2.getAuthInstance 변수가있는 곳)에서 애플리케이션 페이지로 리다이렉션을 수행하기 때문에 이것을 알고 있습니다. 아마이 단계는 틀린 것입니다. Google은 모든 것을 단일 페이지로 만들어야한다고 제안했습니다. 로그인 페이지가 불필요하다고 생각하십니까? – Dan