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
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...