微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何阻止Google oauth自动登录?

这与关于google plus: Prevent auto sign in with Google plus的这个问题有关

区别在于我使用google登录平台而不是google plus,它有不同的api.

背景:

我有一个定价页面,其中包含免费试用注册表单.该表单有谷歌登录按钮.我希望已登录用户能够仍然看到定价页面而没有谷歌登录导致重定向.

我的守则

我的页面顶部有元标记,用于标识我的应用程序. < 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
}

隐藏的表单将提交给后端,其中令牌用于检索用户的电子邮件地址和名称,然后创建用户帐户并将其登录.

我的问题是,如果用户已经登录,谷歌将自动调用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
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐