php - Laravel - 仅使用一台设备登录
问题描述
有什么方法可以让用户只从一台设备登录?
提前致谢
解决方案
好吧,您需要在一个中心位置检查当前想要登录的用户是否已经存在会话 - 如果是,请删除所有现有会话。
中心位置可能是登录发生时或在 auth 中间件中。
要删除用户的所有现有会话,您可以运行
DB::table('sessions')->where('user_id', $user->id)->delete();
仅从一台设备登录,f。前任。笔记本电脑
这可能是不可能的,因为每个设备都需要发送一个唯一的标识符——它不需要。例如,您的笔记本电脑需要向 Laravel 系统发送一个唯一标识符,以便您的 Laravel 应用程序知道登录来自的笔记本电脑。
登录表单通常只需要用户名/电子邮件和密码,因此没有唯一属性来识别您的笔记本电脑。
您可能可以检查浏览器用户代理或类似的东西,但这都是可伪造的,并且不能保证设备的 100% 证明识别。
推荐阅读
- reactjs - 导航栏显示不正确
- python - 如何将多个csv文件中的行复制到熊猫中的新文件中?
- vim - Vim 如何从用户定义的命令中自动返回
- javascript - 处理 SVG 并填充特定区域
- javascript - 等待 aws lambda 函数中的 forEach 循环
- php - 如何修复:模型 [App\User] 错误没有查询结果
- java - 如何使在启动时运行的代码在计划之前先执行?
- android - 是否可以从 JavaScriptInterface 扩展到 MainActivity 以避免非静态错误?
- javascript - 无法使用第一个数组值从 firebase 获取数据
- java - org.apache.commons.net.ftp 的 FTPClient 类中 enterLocal...() 和 enterRemote...() 方法的区别