laravel5.5 __construct函数 无法使用session() 解决方法和实例
从网上查询资料得知,在laravel中使用__construct方法的时候,session还没开启,此时就需要用到中间件来解决。
    $this->middleware(function ($request, $next) {
        var_dump(\Session::get('userid'));
        exit;
    });
我这里用到的__construct函数,是用来判断同一个账号是否在另一个客户端登录,比如A客户端正在登录,此时B客户端也要登录,B客户端登录成功后,A客户端就会退出
通过验证当前的登录IP是否一致来判断。
这是一个公共类,该类继承了Controller类,所以只要用到这个公共类,其他类只需把继承的Controller类换成该公共类就可以了
public function __construct(Request $request)
{
// 判断是否已在客户端登录
$this->middleware(function ($request, $next) {
$ip = md5($_SERVER['REMOTE_ADDR']);//当前的IP,md5加密
$res = DB::table('users')->where(['uid'=>\Session::get('userid')])->first();
if ($ip != $res->IP) {
return redirect('/adminlogin');
exit;
} return $next($request);
});
}
laravel5.5 __construct函数 无法使用session() 解决方法和实例的更多相关文章
- asp.net网站防恶意刷新的Cookies与Session解决方法
		
本文实例讲述了asp.net网站防恶意刷新的Cookies与Session解决方法,是WEB程序设计中非常实用的技巧.分享给大家供大家参考.具体实现方法如下: Session版实现方法: public ...
 - websphere:rs.getDate()无法使用的解决方法
		
参考java.text.SimpleDateFormat 在tomcat中我们可以根据数据的类型将结果集获取到,但在websphere中却无法实现,原因不详. 现在有两种解决方法: 第一种方法是当字符 ...
 - win8下everything无法使用的解决方法
		
今日我电脑上的Everything打开后都无法使用了,只显示几个分区,重装之后暂时就好了,重启电脑又坏了 解决方法:运行services.msc,启动everything.然后重启everything ...
 - Linux服务器重启后nvidia-smi无法使用的解决方法
		
服务器上的nvidia显卡驱动用的好好的,突然有一天,服务器断电了,然后恢复之后发现常用的nvidia-smi命令无法使用了,具体显示什么无法建立和驱动器的通信之类的,上网查了一堆,发现问题的核心:l ...
 - cocos在win平台exe无法使用 UserDefault 解决方法
		
exe模拟器用来调度cocos本来是很方便的事情,但最近很多win10策划无法调用UserDefault.一直以为是权限问题,今天有空读一下码才发现.原来是cocos的bug.存在本地的UserDef ...
 - ThinkPad指纹验证在win7无法使用的解决方法
		
原先本本装window7 64bit 专业版(正版),但用着用着觉得 很不爽 ,反应特慢.所以决定对本本来次大换血,换成windows server 2008 R2.最后在装指纹验证的时候,使用超级管 ...
 - HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法
		
HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...
 - sublime text3插件TrailingSpaces无法使用的解决方法
		
TrailingSpaces是很好用的一款插件,可以清除代码结尾打多了几个空格或Tab,对于代码洁癖绝对是个福音,我的sublime text3本来安装了这款插件,也可以正常使用,今天突然不能用了,即 ...
 - centos 5的yum源无法使用的解决方法( 转载)
		
由于centos 5 已经停更.于是导致yum源也不能用了. 例如安装screen的时候提示 Determining fastest mirrors* base: denver.gaminghost. ...
 
随机推荐
- oracle数据库分组之后取最大或者最小值
			
原始数据 --使用子查询 SELECT * FROM student s WHERE s.birthday IN (SELECT MIN(s2.birthday) FROM student s2 GR ...
 - Cobbler安装CentOS7系统时报错  What do you want do now?
			
问题的根源: 在cobbler服务主机中执行了 createrepo --update /var/www/cobbler/ks_mirror/CentOS-7-x86_64/ 导致的. cobbl ...
 - oracle 新增并返回新增的主键
			
oracle 的insert into 语句需要返回新增的主键的时候,可以使用一下insert 语法: insert into ims.t_bank_inquire_results (t_date,l ...
 - HTMLParser和BeautifulSoup使用入门和总结
			
1.HTMLParser一般这么用: from html.parser import HTMLParser from urllib import request class MyHtmlParser( ...
 - Python开发【第七篇】:面向对象二
			
字段 class Foo: #静态字段(保存在类中) CC = 123 def __init__(self): #普通字段(保存在对象中) ...
 - centos6 下erlang安装
			
https://packages.erlang-solutions.com/erlang/
 - Django自动获取项目中的全部URL
			
import re from collections import OrderedDict from django.conf import settings from django.utils.mod ...
 - Python Day 14 迭代器、for循环原理、枚举、生成器
			
阅读内容 内容回顾 带参装饰器和wraps用法 迭代器知识引入 可迭代对象 迭代器对象 for循环迭代器 枚举对象 生成器 ##内容回顾 函数的嵌套定义:在函数内部定义另一 ...
 - IText实现对PDF文档属性的基本设置
			
一.Itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
 - s5 Docker的持久化存储和数据共享
			
数据库容器的数据如何才能不会丢失?Docker的持久化存储技术.Docker的数据共享技术能极大提高开发人员的开发效率,边写代码,边看运行结果. 数据持久化之Data Volume Docker持久化 ...