记录 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必须要过中间件
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值