解决laravel session失效的问题

最新在学习laravel,用到了session,因为laravel没法用$_SESSION 所以只能用框架的session。

贴上代码

<?php

namespace App\Http\Controllers;
use App\Http\Requests;
use Request;
use Illuminate\Support\Facades\Session;

class CommonController extends Controller
{
  static function login(){
    $team_id=Request::input('team_id');
    $uuid=Request::input('uuid');
    $key=Request::input('key');
    if(empty($team_id)){
      $team_id=Session::get('team_id');
    }
    if(empty($uuid)){
      $uuid=Session::get('uuid');
    }
    if(empty($key)){
      $key=Session::get('key');
    }
//    session(['team_id'=>$team_id]);
    Session::put('team_id',$team_id);
    Session::put('uuid',$uuid);
    Session::put('key',$key);
    Session::save();
  }
  public static function islogin(){
    $team_id=Session::get('team_id');
    $uuid=Session::get('uuid');
    $key=Session::get('key');
    if(!empty($team_id)&&!empty($uuid)){
      if($key != 1234){
        echo "没有权限";
        exit;
      }
    }else{
      echo "没有权限";
      exit;
    }
  }
}

在当前页面可以到SESSION,但是跨页面就失效,以为是AJAX的CSRF验证问题,查找试了不是,然后经过打印发现2个SESSION不一致,继续检查最后发现是在定义路由的时候没有定义在同一个分组内所以导致SESSION不一致。

将路由重新定义好了

Route::group(['middleware'=>'web'],function() {
  Route::any('/report/billviews', 'report\UserbillController@BillViews');
  Route::any('/report/index','report\UseraccessController@index');//把需要用到session的路由请求全部放在web组里。
  Route::any('/report/countprice', 'report\UserbillController@CountPrice');
  Route::any('islogin', 'CommonController@islogin');
  Route::any('login', 'CommonController@login');
});

还有个坑laravel5.2的session必须要过中间件

以上这篇解决laravel session失效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 对laravel的session获取与存取方法详解

    视图获取 session {{ Session::get('user_name') }} 一次性session(验证提示) $request->session()->flash('status','ok'); 从session中获取数据... $value = session('key'); 指定默认值... $value = session('key', 'default'); 存储数据到session... session(['key' => 'value']); 以上这篇对lara

  • 解决Laravel无法使用COOKIE和SESSION的问题

    COOKIE和SESSION的具体使用百度和官方文档上都有. 但是,文档里没有说明必须经过相应的中间件才能使用,百度搜索结果都是彼此copy的bullshit!!! 方法如图所示,对应的路由必须使用下列中间件,COOKIE和SESSION才生效. 以上这篇解决Laravel无法使用COOKIE和SESSION的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决laravel session失效的问题

    最新在学习laravel,用到了session,因为laravel没法用$_SESSION 所以只能用框架的session. 贴上代码 <?php namespace App\Http\Controllers; use App\Http\Requests; use Request; use Illuminate\Support\Facades\Session; class CommonController extends Controller { static function login(){

  • Ajax请求session失效该如何解决

    一般来说我们的项目都有登录过滤器,一般请求足以搞定.但是AJAX却是例外的,所以解决方法是设置响应为session失效. 一共分为过滤器和页面JS两个部分的设置,先看过滤器的修改: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletExcep

  • 完美解决ajax访问遇到Session失效的问题

    最近由于一个项目,模块切换为ajax请求数据,当Session失效后,ajax请求后没有返回值,只有响应的html:<html><script type='text/javascript'>window.open('http://192.168.0.118:8080/welcomeAction/loginUI.do','_top');</script></html> 现在Ajax在Web项目中应用广泛,几乎可以说无处不在,这就带来另外一个问题:当Ajax请求

  • 浏览器关闭使session失效的问题多种解决方式

    如果用户不点击网站的"退出"链接,而直接关闭浏览器(或者强制关闭浏览器进程.死机等),服务器无法处理用户退出网站的请求,解决方式如下: 方式1:在每个页面中加入隐藏的IFrame,以异步刷新的方式定期刷新iframe页面,如每隔10S刷新一次,当服务器在一定的时间内未收到用户的刷新请求,则认为用户已经退出 优点:能在短时间内判断出用户是否已经退出 缺点:增加用户请求次数,所消耗的服务器资源较大 方式2:使用cookie保存用户登录信息,不要设置cookie的过期时间,当关闭浏览器时,c

  • ajax 操作全局监测,用户session失效的解决方法

    ajax 操作全局监测,用户session失效的解决方法 jQuery(function ($) { // 备份jquery的ajax方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行success函数 $.ajax = function (opt) { var _success = opt && opt.success || function (a, b) { }; var _opt = $.extend(opt, { success: functio

  • Session 失效的原因汇总及解决丢失办法

    昨天去GTSC面试,有面试官问我关于Session丢失之后怎么查的问题,说老实话,开发到现在很少碰到这样的情况,唯一想到的就是Session超时,还有就是做Session读写日志,发觉面试官听了之后不是很满意,汗! 不管怎么说,是个学习的好机会,今天抽空查了一下网上关于这些问题的处理方法,总结一下,希望对大家有所帮助. 顺便提一下asp中Session的工作原理: asp的Session是具有进程依赖性的.ASP Session状态存于IIS的进程中,也就是inetinfo.exe这个程序.所以

  • 使用Ajax时处理用户session失效问题的解决方法

    在使用spingMVC的拦截器来处理用户session失效的问题时,当用户session失效会返回一串javascript字符串强制用户浏览器跳转至登录页面.然而当使用Ajax请求数据时,在验证失败后只会响应一串字符串,JavaScript并不会执行,这是由于Ajax的请求是由XMLHTTPRequest对象发起的而不是浏览器,在验证失败后服务器返回的信息会被XMLHTTPRequest对象接收到并保存在js对象中. 为了应对这种情况,可以在后台对Http请求先进行判断,将Ajax请求与普通ht

  • 详解.net mvc session失效问题

    最近在研究有关.net mvc项目中的session失效问题,下面小编把研究过程给大家共享下,大家可以参考下. 最近解决基于.net mvc项目的session失效问题,这个跟大家聊聊. 1.问题分析 .net mvc中,Session失效需要考虑几种情况: •基于权限认证的Action,使用非Ajax请求: •基于权限认证的Action,使用JQueryt Ajax请求: •基于权限认证的Action,使用.net mvc封装的Ajax请求: •无权限认证的Action,使用非Aajx请求:

  • Ajax Session失效跳转登录页面的方法

    在Struts应用中,我们发出的请求都会经过 相应的拦截器进行相关处理,一般都会有一个用户登录拦截(Session失效拦截):一般请求的话,如果Session失效时,我们会跳到登录页面,可是如果我们采用AJAX请求时,将会返回登录页面的HTML代码,这肯定不是我们想要的,那么我们如何解决呢?请看以下步骤: 一.建立拦截器 package com.xxx.planeap.interceptor; import javax.servlet.http.HttpServletRequest; impor

随机推荐