Laravel:注销特定用户

标签 laravel authentication laravel-5 logout

我有一个基于角色的 Laravel 应用程序。我具有管理员角色并尝试阻止特定用户,然后立即将该用户从应用程序中注销。 所以使用Auth::logout() 事实并非如此,因为它注销了我自己,而不是目标用户!

最佳答案

这里的每个人都建议您删除用户 session ,但我认为这是一个坏建议,因为 session 可能包含您不想删除的信息。删除 session 只是为了注销用户就像用火箭筒杀死苍蝇一样。

更优雅的解决方案是将用户标记为注销,并检查是否在每个请求上都标记了用户。如果他被标记,只需使用简单的 Auth::logout() 立即注销他即可

您可以通过单击我的 answer to similar question 的链接找到代码示例.

更新 - 测试

好吧,伙计们,你们对我投了反对票,让我觉得自己像个傻瓜,所以我决定测试一下。

我已将 session 驱动程序切换到数据库。

然后我用session->put('mes', 'I\'m here!');创建了一条路线并运行它。之后我用 echo session->get('mes'); 执行了操作,所以我看到了这条消息。

之后我尝试关闭浏览器并再次打开它。我已使用 Auth::logout(); 注销然后登录。我仍然看到该消息。 session 已保留。

现在,当我使用 @Ben Swinburne 方法手动删除 session 时,该消息消失了。整个 session 被破坏。

所以,我想这证明了我的答案是正确的。

另外,请查看this卢卡斯盖特回答。

关于Laravel:注销特定用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36895314/

相关文章:

php - 带有外键数据的 laravel json 输出

Laravel 和 Mailgun : Guzzle not found in production

linux - 使用 valet-linux 在 ubuntu 中仅显示默认页面

asp.net - 框架是否依赖 IIdentity.AuthenticationType?

php - 在 Laravel 一对多关系上插入数据失败

Laravel 缓存不存储空值

php - 在没有设置 Laravel 数据库时返回插入 ID

从 facebook oauth 重定向时 django session 丢失

php - 使用多个数据库运行 laravel 队列

windows-phone-7 - 获取 Google+ 访问 token 以获取基本信息