-1

当登录的用户打开两个选项卡并从任何一个打开的选项卡中注销时,我该如何处理这种情况。我需要让其他浏览器选项卡知道用户已注销。并拒绝来自客户端本身的用户的任何其他请求。

我正在使用 PHP/Kohana

4

3 回答 3

1

虽然我大多同意 NB(“你可能不需要做任何事情”),但我可以想到几个选项:

  • 您的页面可以轮询您的服务器并检查会话状态。
  • 您的注销页面可能会更新cookieLocal Storage。其他页面将轮询此位置而不是您的服务器。
于 2014-08-27T10:53:55.363 回答
1

有很多方法可以做到这一点。一是如果使用 Kohana 请求重定向路由二是使用 JavaScript 检查并重新加载。

于 2014-08-27T11:05:04.450 回答
0

使用 kohana 方式可能很简单。在您正在扩展或使用的主控制器中,使用 before 函数,您将在其中确定用户是否已登录并在是否登录时采取一些措施。只需使用 kohana Auth 模块登录用户,例如:

Auth::instance()->login($username, $password);

然后 kohana 将自动将该用户保存为已登录。您之前的功能应包含以下内容:

if (!Auth::instance()->logged_in())
{
    //redirect to login page
}

这样,您将在用户尝试打开其他页面时检查用户是否已登录。如果您也在使用 ajax,那么它也应该以同样的方式应用于主 ajax 控制器。

然后注销用户使用:

Auth::instance()->logout();
于 2014-08-27T13:10:42.153 回答