我在我的一个项目上使用我自己的登录系统和facebook登录系统登录系统。问题是Facebook登录似乎没有登出mac设备。
我的代码
session_start();
if(isset($_COOKIE['checkuserst'])) {
unset($_COOKIE['checkuserst']);
setcookie('checkuserst', '', time() - 3600, '/');
}
unset($_SESSION['username']);
header("Location:index.html");
除了safari之外,所有Windows浏览器cookie都将过期,而在mac中,没有任何浏览器cookie过期。
有人能指出正确的解决方法。
答案 0 :(得分:1)
您不应该依赖浏览器中的Cookie过期来确定用户是否已注销(因为用户很容易制作欺诈性Cookie)。将会话过期存储在$_SESSION
或数据库中。当您收到请求时,即使存在cookie,也请首先检查服务器存储中的匹配cookie并确保它没有过期。
这样浏览器中发生的任何事情(例如浏览器不删除过期的cookie)都不会影响您的服务器端安全性