谷歌登录API - 如何使用PHP注销某人
Google Sign in API - How do I log someone out with PHP?
在Google的集成Google登录页面上,底部有一个部分,向您展示如何使用Javascript将用户注销:
<a href="#" onclick="signOut();">Sign out</a>
<script>
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
</script>
我一直在寻找,但找不到使用 PHP 像这样注销用户的方法。
我确实找到了如何将用户完全从Google中注销的方法,但我不希望这样。我也知道我可以删除保存访问代码的 $_SESSION
变量,但这仍然不完全是我想要的。
有谁知道我如何使用PHP将某人从我的Google应用程序中注销?
这应该有效,我修复了 Mark Guinn 代码的问题,即 gapi.auth2.init();
方法的任务未完成执行。 .then()
它解决了这个问题。
<?php
session_start();
session_unset();
session_destroy();
?>
<html>
<head>
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
</head>
<body>
<script src="https://apis.google.com/js/platform.js?onload=onLoadCallback" async defer></script>
<script>
window.onLoadCallback = function(){
gapi.load('auth2', function() {
gapi.auth2.init().then(function(){
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
document.location.href = 'login.php';
});
});
});
};
</script>
</body>
</html>
JavaScript
是为与您的域不同的域操作 cookie 的唯一方法。
检查一下它对你有用
header('Location:https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://www.domain.com');
如果您打算在服务器端auth2.signOut()
注销用户,请查看此代码(尽管它是python,但您应该明白这一点)。
app.signOut = function() {
// Get `GoogleAuth` instance
var auth2 = gapi.auth2.getAuthInstance();
// Sign-Out
fetch('/signout', {
method: 'POST',
credentials: 'include'
}).then(function(resp) {
if (resp.status === 200) {
auth2.signOut()
.then(changeProfile);
} else {
console.error("couldn't sign out");
}
}).catch(function(error) {
console.error(error);
});
};
而这个
@app.route('/signout', methods=['POST'])
def signout():
# Terminate sessions
session.pop('id', None)
return make_response('', 200)
这取决于您如何构建会话,但您可以在signOut()
之前将 ajax 请求发送到服务器。
为什么不让你的注销脚本看起来像这样:
<?php
session_start();
session_unset();
session_destroy();
?>
<html>
<head>
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
</head>
<body>
<script src="https://apis.google.com/js/platform.js?onload=onLoadCallback" async defer></script>
<script>
window.onLoadCallback = function(){
gapi.load('auth2', function() {
gapi.auth2.init();
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
document.location.href = 'login.php';
});
});
};
</script>
</body>
</html>
相关文章:
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- PHP-window.onbeforeunload和自动注销冲突
- PHP自动注销,无需刷新页面
- 谷歌登录API - 如何使用PHP注销某人
- 如何在 PHP 的 HTML 页面中动态更改登录和注销链接
- 如何在php中进行自动注销
- php注销重定向头中断代码
- 如何在php中的数据库表中跟踪注销的用户
- 检测用户是否通过JS使用php注销(没有会话),如果是,则停止执行JS函数的其余部分
- Facebook连接:Can't使用PHP SDK+JS SDK注销
- 使用javascript注销php会话
- 使用PHP和JS SDK注销Facebook
- 当用户在php中的一个打开的选项卡中注销时,会自动注销所有打开的选项卡
- 注销windows身份验证IIS 8:使用php和javascript
- PHP或Javascript功能-强制注销facebook与1点击,如果可能的话
- PHP表单在注册后自动注销
- 从WordPress functions.php中注销jQuery
- 在php中处理登录后的会话id,以将菜单栏项从登录更改为注销
- 注销定时器php/javascript
- 我想使用php中的按钮注销