根据谷歌文档: 加载谷歌登录按钮后,它会立即检查用户是否已授权该应用程序。此检查称为“立即模式”,如果成功,Google服务器将返回访问令牌并将新的授权结果对象传递给回调。如果该按钮无法进行立即模式授权,则用户必须单击登录按钮才能触发访问流程。
我的Google Plus登录按钮是标题的一部分,在退出主页时 页面已加载,它再次呈现谷歌加按钮导致 自动登录。用户永远不会因此而退出。如何 单击G Plus按钮时可以允许登录,而不是 什么时候G Plus buttom会自行回归?
答案 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)
我找到了一种方法,也许这也是你想要的:
答案 3 :(得分:0)
这不是最干净的解决方案,但您可以尝试对传递给回调的status.method
的{{1}}属性进行过滤。
过滤因authResult
设置为authResult.status.method
而触发的所有回调,但处理任何AUTO
(通过单一授权Google帐户登录)或null
(用户)选择了几个Google帐户中的一个。)