首页 > 解决方案 > Laravel - 仅使用一台设备登录

问题描述

有什么方法可以让用户只从一台设备登录?

提前致谢

标签: phplaravelauthentication

解决方案


好吧,您需要在一个中心位置检查当前想要登录的用户是否已经存在会话 - 如果是,请删除所有现有会话。

中心位置可能是登录发生时或在 auth 中间件中。

要删除用户的所有现有会话,您可以运行

DB::table('sessions')->where('user_id', $user->id)->delete();

仅从一台设备登录,f。前任。笔记本电脑

这可能是不可能的,因为每个设备都需要发送一个唯一的标识符——它不需要。例如,您的笔记本电脑需要向 Laravel 系统发送一个唯一标识符,以便您的 Laravel 应用程序知道登录来自的​​笔记本电脑。

登录表单通常只需要用户名/电子邮件和密码,因此没有唯一属性来识别您的笔记本电脑。

您可能可以检查浏览器用户代理或类似的东西,但这都是可伪造的,并且不能保证设备的 100% 证明识别。


推荐阅读