防止谷歌自动触发数据onsuccess="onSignIn”;
Prevent google from automatically triggering data-onsuccess="onSignIn"
我做了谷歌连接,让用户使用他们的谷歌帐户登录。
我所做的是,创建一个按钮
<div class="g-signin2 social_signin" data-onsuccess="onSignIn"></div>
然后在SignIn()上创建
<script>
function onSignIn(googleUser) {
// Useful data for your client-side scripts:
var profile = googleUser.getBasicProfile();
console.log("ID: " + profile.getId()); // Don't send this directly to your server!
console.log("Name: " + profile.getName());
console.log("Image URL: " + profile.getImageUrl());
console.log("Email: " + profile.getEmail());
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
console.log("ID Token: " + id_token);
};
</script>
然后将该令牌发送到PHP服务器进行验证和获取数据。这很好。
但我的问题是,当用户从我的网站注销时,谷歌会自动触发"onSignIn",而无需点击我创建的按钮。所以当用户注销时,用户会自动重新登录。
你能帮我防止这种自动登录吗?或者我可以取消对用户的授权吗?
只需添加onclick并单击创建全局变量(默认值为false),如果变量为true,则可以调用BasicProfile。
<div class="g-signin2 social_signin" onclick="ClickLogin()" data-onsuccess="onSignIn"></div>
<script>
var clicked=false;//Global Variable
function ClickLogin()
{
clicked=true;
}
function onSignIn(googleUser) {
if (clicked) {
profile = googleUser.getBasicProfile();
}
};
</script>
所以终于弄明白了。。。
只需将onclick="gp_signOut();"分配给退出按钮
function gp_signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- CKEditor如何允许href="javascript:void(0)"在小部件中
- 防止谷歌自动触发数据onsuccess="onSignIn”;