And*_*sen 6 javascript google-oauth
这与有关Google Plus的问题有关:禁止使用Google Plus自动登录
区别在于我使用的是Google登录平台,而不是具有不同API的google plus。
背景:
我有一个包含免费试用注册表格的定价页面。该表单具有Google登录按钮。我希望已登录的用户仍能够在不使用Google登录导致重定向的情况下查看定价页面。
我的密码
我在页面顶部有一个meta标签,用于标识我的应用程序。 <meta name="google-signin-client_id" content="MY_CLIENT_ID">
我在页面上包含了此脚本:<script src="https://apis.google.com/js/platform.js"></script>
我有这个div呈现按钮: <div class="g-signin2" data-onsuccess="onSignIn"></div>
我的onSignIn函数如下所示:
function onSignIn(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
$('#google_token').val(id_token); //hidden form value
$('#google-oauth').submit(); //hidden form
}
Run Code Online (Sandbox Code Playgroud)
隐藏的表单将提交到后端,在该后端使用令牌来检索用户的电子邮件地址和名称,然后创建用户帐户并登录。
我的问题是,如果用户已经登录,则Google将自动调用onSignIn函数,从而导致在加载页面时提交表单。有没有办法防止onSignIn函数被自动调用?
参考:https : //developers.google.com/identity/sign-in/web/sign-in
尝试这个:
function onSignIn(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
var auth2 = gapi.auth2.getAuthInstance();
auth2.disconnect();
//if this did not had time to sign out put below lines in setTimeout to make a delay
$('#google_token').val(id_token); //hidden form value
$('#google-oauth').submit(); //hidden form
}
Run Code Online (Sandbox Code Playgroud)
获取用户信息后尝试退出,我尝试退出,但断开连接
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
var idToken = googleUser.getAuthResponse().id_token;
gapi.auth2.getAuthInstance().disconnect().then(function () {
//Do stuff here after the user has been signed out, you can still authenticate the token with Google on the server side
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5666 次 |
| 最近记录: |