Laravel 注销不同的用户
Posted
技术标签:
【中文标题】Laravel 注销不同的用户【英文标题】:Laravel log different user out 【发布时间】:2015-06-23 02:20:12 【问题描述】:在我的网站上,管理员有权为用户生成新密码并将新密码通过电子邮件发送给他们。
我怎样才能结束现在拥有新密码的用户的所有会话?
我正在使用 laravel Auth
类。
为了让用户自己注销,我使用Auth::logout();
【问题讨论】:
可以看一下laravel的源码:github.com/laravel/framework/blob/4.2/src/Illuminate/Auth/… 从代码和文档来看,您应该在调用logout()
之前调用Auth::setUser($user)
并传递一个User
实例。但是,我只是尝试过,但它不起作用 - 它会注销 me,而不是我传递给它的用户。也许这是一个错误......无论如何,我提交了一个issue所以你可能想要关注它
这不是错误,@KaloyanDoichinov。 setUser 使您的日志就像您在变量中的 $user 位置一样。如果您想像测试该用户一样进行测试,这很有用。 logout() 方法注销调用该方法的人。所以一切都按原样工作。
【参考方案1】:
对于回访者,如果您使用 Eloquent 并使用他们的指南设置了数据库,那么您的用户表应该有一个 remember_token
字段。删除该字段的内容将阻止它们在下次访问时自动全部登录。
但是,在短期内,Laravel 知道用户是否通过他们的会话 id 登录。我不相信在纯 Laravel 中有解决此问题的方法,但是您可以通过扩展 Auth 类来添加它。然后,您可以强制它检查数据库中您设置的值,以查看是否需要强制退出用户。
我不确定你是如何在 Laravel 中做到这一点的。从理论上讲,Facade 应该使这更容易,但根据我的经验,情况恰恰相反。如果这个问题在我周一上班时仍然悬而未决,我会看看我是否可以为你解决,但我不是 Laravel 的最大粉丝并且拒绝在家里使用它。 ;p
【讨论】:
以上是关于Laravel 注销不同的用户的主要内容,如果未能解决你的问题,请参考以下文章