【发布时间】:2016-08-22 01:48:29
【问题描述】:
我有一个基于角色的 Laravel 应用程序。我有管理员角色并试图阻止特定用户,然后立即将用户从应用程序中注销。
所以使用Auth::logout()
情况并非如此,因为它注销了自己而不是预期的用户!
【问题讨论】:
-
你必须以某种方式清除他们的会话。您使用的是什么会话存储?
-
如果他们选中了“记住我”框,您可能还必须清除他们在
users表中的remember_me令牌,这样他们就不会立即重新登录。 -
如果您切换到数据库驱动程序,它会存储一个
user_id字段,因此您可以简单地使用delete from sessions where user_id = $id -
我同意切换到数据库驱动程序,使用文件会话驱动程序时有some issues noticed,如果用户即使在登录后仍然可以执行
ajax请求,这可能会影响您的情况出去。上面同样的问题让我困扰了几天。 -
正如 ceejayoz 所说,您还需要删除 users 表中的 remember_me 令牌,否则客户端上的 cookie 将识别用户并创建新会话。
标签: laravel authentication laravel-5.2 logout