我正在构建一个基于 cookie 的会话机制,它有一个抽象类 Session,可以扩展它以创建多个 cookie 会话实例,以适应不同的用途和复杂性……。
我还有一个 Auth 类,它处理权限以及用户的实际登录和注销。Auth 类需要 Session 类或子类才能运行。
到目前为止一切都很好,我可以登录用户,如果经过一定时间、IP 地址不匹配等,也可以将其注销。
每个页面加载都会读取 cookie 检查是否存在不一致,并根据 xyz 销毁或更新它。销毁脚本现在将 cookie 上的时间设置回减号,并删除已从 auth 库中添加的所有用户数据。这很有效,因为我登录后等待了几分钟,然后点击刷新,cookie 变得疲惫不堪,我被弹回登录屏幕。
但是,如果我想通过单击按钮将它们注销,则销毁脚本不起作用,即我可以在顶部回显原始用户数据运行注销脚本,该脚本回显注销并运行所有功能而没有错误等但是那么如果我得到用户cookie它仍然是一样的。我不明白这对于自动检查是如何起作用的,但当用户点击注销按钮时……</p>
下面是我的 sessionDestroy 函数
protected function sessionDestroy($cookieName) {
setcookie(
$cookieName,
addslashes(serialize(array())),
(time() - 3600),
0
);
}
PS我知道destroy对cookies来说是个坏词,但你知道我的意思……希望