Laravel仅允许单一会话存在实现
他说你任何为人称道的美丽 不及他第一次遇见你在Laravel 中, 如果要实现用户的单点登录, 即系统中同一个用户仅仅允许一个会话(session)存在, 实现起来相当简单, 下面的代码是我在Laravel 5.5.13中试验的, 并不保证在其他版本的Laravel中可以使用, 但是思想同样可以借鉴;
修改user表
User模型对应的数据库表增加 session_id
字段, string
类型;
修改登录控制器
/app/Http/Controllers/Auth/LoginController.php
1 | public function authenticated(Request $request,User $user){ |
验证
我们分别在不同的浏览器去用同一帐号尝试去登录我们的应用, 发现, 如果帐号在一个浏览器登录, 那么另外一个浏览器的帐号就会自动退出;
https://tiicle.com/items/327/laravel-applications-a-user-is-only-allowed-a-single-session