我正在寻找一个解决方案,允许用户在同一时间只登录一次。我是Laravel的新手,在这种情况下,我几乎是开箱即用(文件会话驱动程序和默认的auc -handling with custom views)。
我的想法是在用户第二次登录后"重置"用户的授权,以自动使所有其他活动会话无效。
所以我的首要问题是:是否有一种方法可以用一些Laravel魔法来实现这个功能,或者我需要自己发明这个功能?
您还可以这样做:
在用户表中添加一列:
sessionID (varchar or text)
现在你要做的是:当用户登录时,将会话ID存储在sessionID字段中。每次用户加载页面或发出请求时,检查DB中的sessionID值是否与登录用户的sessionID相同。如果不是,终止会话并让他再次登录。
现在,当用户登录时,检查usertable是否已经填写了sessionID值。如果是,将其更改为新的sessionID。结果将是所有使用旧sessionID的请求将无效(因为您的检查),并且用户只能使用新会话访问您的web应用程序/网站。