Google登录 - 阻止自动加载

时间:2017-05-30 20:12:52

标签: google-oauth google-signin google-oauth2

我被困在这几个小时。我已经尝试谷歌搜索答案,但我不理解它们中的任何一个,并且必须假设它是过时的代码。

我正在尝试向我的网站添加“使用谷歌登录”,但我希望它仅重定向到登录检查,如果用户点击按钮,而不是在检测到我已经登录时

按钮:

<div class="g-signin2" data-onsuccess="onSignIn"></div>

脚本:

<script>
function onSignIn(googleUser) {
    var profile = googleUser.getBasicProfile();
    console.log('ID: ' + profile.getId());
    console.log('Name: ' + profile.getName());
    var id_token = googleUser.getAuthResponse().id_token;
    window.location.replace("googleLogin.phptoken="+ id_token);
    }
</script>

任何人都征服了这个问题?

1 个答案:

答案 0 :(得分:0)

我真的不记得我做了什么来解决这个问题,但我有同样的一个最终制作一个新的脚本在这里是一个js小提琴的链接,你将不得不插入自己的客户端ID,它没有&#39;有一个图像,所以你只会看到谷歌登录按钮的图片。

var googleUser = {};
 var startApp = function() {
gapi.load('auth2', function(){
  // Retrieve the singleton for the GoogleAuth library and set up the client.
  auth2 = gapi.auth2.init({
    client_id: '83******98-pe4uneu******sj.apps.googleusercontent.com',
    cookiepolicy: 'single_host_origin',
    // Request scopes in addition to 'profile' and 'email'
    //scope: 'additional_scope'
  });
  attachSignin(document.getElementById('customBtn'));
});
};

function attachSignin(element) {
console.log(element.id);
auth2.attachClickHandler(element, {},
    function(googleUser) {
   first_name =  googleUser.getBasicProfile().getGivenName();
         last_name =  googleUser.getBasicProfile().getFamilyName();
         email =  googleUser.getBasicProfile().getEmail();
        console.log(googleUser.getBasicProfile().getGivenName());
        console.log(googleUser.getBasicProfile().getFamilyName());
        console.log(googleUser.getBasicProfile().getEmail());
        window.location = "/profile"     
    }, function(error) {
      alert(JSON.stringify(error, undefined, 2));
    });

 }

 startApp();

https://jsfiddle.net/josephmckenzie/9pxc41kx/

您需要的所有代码都在js小提琴