需求描述
当前用户只能在一个地方登录,即同一账号不能再2个以上窗口登录,后登录者踢出前登录者。
设计思路
在用户数据表中新增1个字段,记录当前登录用的session_id,当用户登录的时候把session_id存储到数据库中,然后在中间件认证里加判断,判断当前用户sesson_id是否和数据库中的session_id相等,如果相等继续向下执行,反之注销登录。
具体实现
1.首先在用户表中新增字段last_session,类型CHAR 40长度
2.在AuthController 控制器中实现父类方法authenticated方法,目的保存当前用户的session_id到数据库中。
protected function authenticated($request,$user){ $user->last_session = Session::getId(); $user->save(); return redirect()->intended($this->redirectPath()); }
3.在Authenticate中间中加入判断代码
if(Session::getId() != Auth::guard($guard)->user()->last_session){ return redirect('/admin/logout');}
也可以在判断代码块中加入其它,如提示当前账号在其它地方登录,然后注销当前登录等。
以上这篇laravel 5.3 单用户登录简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持站长技术。
1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的ht...
简介 MongoDB是一个开源的,基于分布式的,面向文档存储的菲关系型数据库。可以...
本文实例讲述了YII2框架中查询生成器Query()的使用方法。分享给大家供大家参考,...
前言 我们在开发一个复杂的系统时可能经常出现这样的场景:比如,A函数中调用了B...
我对PHP的正则表达式不太熟悉 在使用eregi_replace()函数时发现带有()的字符串...
正则表达式分组: 如果想匹配3个数字,正则表达式可以用如下写法: \d{3} 以上代码...
文章目录 安装 go 安装 Codis 安装 jdk 安装 zookeeper 启动 Codis搭建集群 安装...
最近在最有做一个嵌入式课程设计,要求是利用基于cortax a8的物联网实验箱做一个...
作为程序员,少不了跟服务器打交道。为什么大多数服务器都用Linux呢?它有很多优...
nbsp   no-break space = non-breaking space, iexcl ¡ inverted ex...