当登录的用户打开两个选项卡并从任何一个打开的选项卡中注销时,我该如何处理这种情况。我需要让其他浏览器选项卡知道用户已注销。并拒绝来自客户端本身的用户的任何其他请求。
我正在使用 PHP/Kohana
当登录的用户打开两个选项卡并从任何一个打开的选项卡中注销时,我该如何处理这种情况。我需要让其他浏览器选项卡知道用户已注销。并拒绝来自客户端本身的用户的任何其他请求。
我正在使用 PHP/Kohana
虽然我大多同意 NB(“你可能不需要做任何事情”),但我可以想到几个选项:
有很多方法可以做到这一点。一是如果使用 Kohana 请求重定向路由二是使用 JavaScript 检查并重新加载。
使用 kohana 方式可能很简单。在您正在扩展或使用的主控制器中,使用 before 函数,您将在其中确定用户是否已登录并在是否登录时采取一些措施。只需使用 kohana Auth 模块登录用户,例如:
Auth::instance()->login($username, $password);
然后 kohana 将自动将该用户保存为已登录。您之前的功能应包含以下内容:
if (!Auth::instance()->logged_in())
{
//redirect to login page
}
这样,您将在用户尝试打开其他页面时检查用户是否已登录。如果您也在使用 ajax,那么它也应该以同样的方式应用于主 ajax 控制器。
然后注销用户使用:
Auth::instance()->logout();