记录 laravel session失效问题
最新在学习laravel,用到了session,因为laravel没法用$_SESSION 所以只能用框架的session。
贴上代码
<?php namespace AppHttpControllers; use AppHttpRequests; use Request; use IlluminateSupportFacadesSession; 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", "reportUserbillController@BillViews"); Route::any("/report/index","reportUseraccessController@index");//把需要用到session的路由请求全部放在web组里。 Route::any("/report/countprice", "reportUserbillController@CountPrice"); Route::any("islogin", "CommonController@islogin"); Route::any("login", "CommonController@login"); });还有个坑laravel5.2的session必须要过中间件
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: iOS 认识CoreData-基础
- 下一篇: sqlite与coreData的简单比较