我有一个基础Laravel应用程序。我有管理员角色并试图阻止特定用户,然后立即将用户从应用程序中注销。
所以使用Auth::logout()
事实并非如此,因为它不是预定的用户!
答案 0 :(得分:1)
这里的每个人都建议您删除用户会话,但我认为这是一个不好的建议,因为会话可以包含您不想删除的信息。删除会话只是为了注销用户就像用火箭筒杀死苍蝇一样。
更优雅的解决方案是标记用户注销并检查是否在每个请求上都标记了用户。如果他被标记,只需使用简单的Auth::logout()
您可以点击我的answer to similar question链接找到代码示例。
更新 - 测试
好的,伙计们,你们让我失望并让我觉得自己像个傻瓜,所以我决定试一试。
我已将会话驱动程序切换到数据库。
然后我用session->put('mes', 'I\'m here!');
做了一条路线然后跑了。之后我用echo session->get('mes');
进行了操作,所以我看到了这条消息。
之后,我尝试关闭浏览器并再次打开它。我已使用Auth::logout();
注销然后登录。我仍然看到了该消息。会议保持不变。
现在,当我使用@Ben Swinburne方法手动删除会话时,消息已消失。整个会议都被摧毁了。
所以,我猜它证明我的答案是正确的。
另外,请查看lukasgeiter的this回答。