Rails:远程了解cookie /注销用户

时间:2016-06-17 09:33:10

标签: ruby-on-rails cookies

管理员应该能够通过管理控制台远程注销用户。

当用户登录时,会使用cookies.signed[:user_token]设置Cookie 用户退出时,Cookie会被cookies.delete :user_token删除。

我只能访问和删除当前用户向我的rails控制器发送请求的cookie。 Cookie哈希仅包含当前用户的:user_tokensession_store密钥。

是否可以访问所有登录用户的Cookie并从一个帐户中删除?我找不到任何关于此的信息。

另一种方法:

  1. 跟踪数据库中每个用户的登录状态(0或1)。每次用户登录时,状态都设置为1。
  2. 允许管理员通过管理控制台将状态更改为0.
  3. 客户端浏览器每分钟左右请求登录状态。如果状态为0,则发送注销请求。
  4. 你们怎么看待这种做法?

1 个答案:

答案 0 :(得分:0)

据我所知,cookies存储在用户的浏览器中。你无法删除它们。你可能会以某种方式使它们无效,但是对于每个用户来说,这将是困难的。

在数据库中存储登录状态应该是您正在寻找的解决方案。因此,当用户进入时,您执行常规身份验证,然后检查数据库。如果为0,则表示登录。这样管理员就可以改变那个值。此外,你必须放入一些东西来使会话表中的标志失效