首页 > 解决方案 > Google OAuth2 SignIn 方法在页面加载时触发

问题描述

我使用了 Google SignIn 的官方按钮:

登录页面:

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

function AuthenticateGoogleUser(googleUser){
    .....
    capture the user info and redirect to Home page
    .....
}

配置凭据时,我已将重定向 URL 设置为登录页面。

这是应用程序注销的方式:

function SignOutGoogleUser() {
    if (gapi != null && gapi != undefined &&
        gapi.auth2 != null && gapi.auth2 != undefined) {
        var auth2 = gapi.auth2.getAuthInstance();
        auth2.signOut().then(function () {
            auth2.disconnect();    
            ....Redirect to Home page...        
        });
    }
}

这些方法工作正常。如果我注销,将被重定向到主页。
但是,当我在退出后手动浏览登录页面时,AuthenticateGoogleUser会触发该方法并且我会自动登录到应用程序(使用谷歌帐户)。

AuthenticateGoogleUser方法应仅在单击按钮时触发。那正确吗。但是在这里它是在加载登录页面时触发的。这是预期的吗。这可以阻止吗。

我使用 MVC C# 作为后端。

标签: google-oauth

解决方案


在没有看到所有代码的情况下,我假设您没有将函数放在文档就绪包装器中,并确保仅在单击按钮或其他您希望触发它的事件时启动它。就目前而言,它将在该页面加载时触发。

$(document).ready(function(){
   $("btnLogin").click(function(){
      AuthenticateGoogleUser(googleUser);
   });
});

推荐阅读