laravel 5.3 单用户登录简单实现方法


Posted in PHP onOctober 14, 2019

需求描述

当前用户只能在一个地方登录,即同一账号不能再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 单用户登录简单实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
php实现过滤UBB代码的类
Mar 12 PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 PHP
thinkPHP使用post方式查询时分页失效的解决方法
Dec 09 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
深入浅析用PHP实现MVC
Mar 02 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 #PHP
Yii框架数据库查询、增加、删除操作示例
Oct 14 #PHP
laravel框架上传图片实现实时预览功能
Oct 14 #PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 #PHP
yii框架数据库关联查询操作示例
Oct 14 #PHP
laravel实现上传图片并在页面显示的例子
Oct 14 #PHP
Thinkphp5.0 框架的请求方式与响应方式分析
Oct 14 #PHP
You might like
IIS6的PHP最佳配置方法
2007/03/19 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
PHP中each与list用法分析
2016/01/08 PHP
php bootstrap实现简单登录
2016/03/08 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
jQuery操作cookie方法实例教程
2014/11/25 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JS实现的抛物线运动效果示例
2018/01/30 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
动态创建类实例代码
2009/10/07 Python
python集合用法实例分析
2015/05/30 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
详解python里的命名规范
2018/07/16 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
初一学生期末评语
2014/04/24 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
拾金不昧感谢信
2015/01/21 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python