当前位置:首页 > CMS教程 > 其它CMS > 列表

解决laravel session失效的问题

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-02 13:48:23 浏览: 评论:0 

今天小编就为大家分享一篇解决laravel session失效的问题,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

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

贴上代码:

  1. <?php 
  2.    
  3. namespace App\Http\Controllers; 
  4. use App\Http\Requests; 
  5. use Request; 
  6. use Illuminate\Support\Facades\Session; 
  7.    
  8. class CommonController extends Controller 
  9.   static function login(){ 
  10.     $team_id=Request::input('team_id'); 
  11.     $uuid=Request::input('uuid'); 
  12.     $key=Request::input('key'); 
  13.     if(emptyempty($team_id)){ 
  14.       $team_id=Session::get('team_id'); 
  15.     } 
  16.     if(emptyempty($uuid)){ 
  17.       $uuid=Session::get('uuid'); 
  18.     } 
  19.     if(emptyempty($key)){ 
  20.       $key=Session::get('key'); 
  21.     } 
  22. //    session(['team_id'=>$team_id]); 
  23.     Session::put('team_id',$team_id); 
  24.     Session::put('uuid',$uuid); 
  25.     Session::put('key',$key); 
  26.     Session::save(); 
  27.   } 
  28.   public static function islogin(){ 
  29.     $team_id=Session::get('team_id'); 
  30.     $uuid=Session::get('uuid'); 
  31.     $key=Session::get('key'); 
  32.     if(!emptyempty($team_id)&&!emptyempty($uuid)){ 
  33.       if($key != 1234){ 
  34.         echo "没有权限"
  35.         exit
  36.       } 
  37.     }else
  38.       echo "没有权限"
  39.       exit
  40.     } 
  41.   } 

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

将路由重新定义好了

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

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

Tags: laravel session

分享到: