单击按钮时启动 Google 登录

Initiate Google sign in on button click

您好,我正在使用 google api 登录我的网络应用程序。现在它工作正常。但问题是 sigin 在我进入登录页面时自动启动。但我不想那样。我希望用户先单击登录按钮,然后进程开始。

我正在使用下面的按钮

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

google log in 引用。

我发现最好的方法是使用 Java 脚本登录 google。

使用

script type="text/javascript">
      (function() {
       var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
       po.src = 'https://apis.google.com/js/client.js?onload=onLoadCallback';
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
     })();
</script>

初始化js。最后调用下面的方法登录用户

function login() 
{
  var myParams = {
    'clientid' : 'YOUR_CLIENT_ID.apps.googleusercontent.com', //You need to set client id
    'cookiepolicy' : 'single_host_origin',
    'callback' : 'loginCallback', //callback function
    'approvalprompt':'force',
    'scope' : 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read'
  };
  gapi.auth.signIn(myParams);
}

通过使用它我能够解决这个问题。现在用户需要点击登录才能登录

使用 'attachClickHandler' 启动 Google 登录。

<script src="https://apis.google.com/js/client:platform.js?onload=init" async defer></script>
<script>
   function init() {
        gapi.load('auth2', function() {
            auth2 = gapi.auth2.init({
                client_id: '*************.apps.googleusercontent.com',
                cookiepolicy: 'single_host_origin',
                scope: 'profile email'
            });
            element = document.getElementById('glogin');
            auth2.attachClickHandler(element, {}, onSignUp, onFailure);
        });
    }
    function onSignUp(googleUser) {
      var profile = googleUser.getBasicProfile();
    }
</script>