如何使用Gplus按钮渲染立即删除Google Plus登录/

时间:2013-06-23 09:56:45

标签: google-plus-one

根据谷歌文档: 加载谷歌登录按钮后,它会立即检查用户是否已授权该应用程序。此检查称为“立即模式”,如果成功,Google服务器将返回访问令牌并将新的授权结果对象传递给回调。如果该按钮无法进行立即模式授权,则用户必须单击登录按钮才能触发访问流程。

  

我的Google Plus登录按钮是标题的一部分,在退出主页时   页面已加载,它再次呈现谷歌加按钮导致   自动登录。用户永远不会因此而退出。如何   单击G Plus按钮时可以允许登录,而不是   什么时候G Plus buttom会自行回归?

4 个答案:

答案 0 :(得分:1)

“立即”参数为我做了,虽然它与'approval_prompt'具有相同的效果,但提示同意。 Facebook似乎更好地处理这些选项。

gapi.signin.render("splashGPlusReg", { 
'callback': GPSignInCallback, 
'clientid': '<yourclientId>', 
'cookiepolicy': 'single_host_origin',
'immediate': false, 
'requestvisibleactions': 'http://schemas.google.com/AddActivity',
'scope': '<scopes>'                           
});

答案 1 :(得分:1)

您有两种方法可以立即删除Google Plus登录。

1-不是一个好方法:使用data-approvalprompt =&#34; force&#34;在你的按钮。我在下面写了一个例子:

    <span id="signinButton" >
       <span
        class="g-signin g-link"
        data-callback="signinCallback"
        data-clientid="*****.apps.googleusercontent.com"
        data-cookiepolicy="single_host_origin"
        data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read"    
        data-approvalprompt="force"
        style= "cursor:pointer;">
        Login With Google
      </span>
    </span>

这不是一个好方法,因为如果你添加它,那么Google要求用户给予一个额外的权限以进行离线访问。因此,这可能会让用户因为此权限而无法注册。

2-更好的方法:只需在您的signincallback函数中收到回复后从Google注销。只需添加:

gapi.auth.signOut();

收到回复后,您应该写下这一行。最好将它作为request.execute(function(resp)函数)中的最后一行。

通过添加此代码,Google无法呈现登录信息,除非有人点击登录按钮。Google也建议采用此方法。

答案 2 :(得分:0)

我找到了一种方法,也许这也是你想要的:

disable automatic authentication for Google+ social sign-in

答案 3 :(得分:0)

这不是最干净的解决方案,但您可以尝试对传递给回调的status.method的{​​{1}}属性进行过滤。

过滤因authResult设置为authResult.status.method而触发的所有回调,但处理任何AUTO(通过单一授权Google帐户登录)或null(用户)选择了几个Google帐户中的一个。)