php – Laravel无法检索POST请求中保存的会话数据
发布时间:2020-12-14 19:37:40 所属栏目:大数据 来源:网络整理
导读:我在Laravel会话创建和阅读时遇到问题. 我可以创建会话值,但问题是访问数据. 如果我在POST请求中创建会话值,那么我无法在GET请求中访问它. 这是我的路线 Route::get('/','HomeController@index');Route::get('/admin/dashboard','AdminController@dashBoard'
我在Laravel会话创建和阅读时遇到问题.
我可以创建会话值,但问题是访问数据. 如果我在POST请求中创建会话值,那么我无法在GET请求中访问它. 这是我的路线 Route::get('/','HomeController@index'); Route::get('/admin/dashboard','AdminController@dashBoard'); Route::post('/admin/login_admin','AdminController@doLogin'); Route::post('/admin/login_test','AdminController@test'); Route::get('/admin/login','AdminController@seeLogin'); 这里的doLogin使用post方法: public function doLogin(Request $request){ $email = $request->input("email"); $password = $request->input("password"); $checkerInfo = AdminGetLoginChecker($email,$password); //if logged in if($checkerInfo){ $request->session()->put('loggedIn','1'); $request->session()->put('userId',$checkerInfo); $request->session()->save(); return response()->json([ 'success' => true,'message' => 'logged In' ]); } return response()->json([ 'success' => false,'message' => 'Incorrect User Email,Password' ]); } 现在问题是如果请求访问其他get请求部分中的会话值,那么它不允许访问. public function dashboard(Request $request) { $data = $request->session()->all(); print_r($data); return view('welcome',['name' => 'James']); } 这里它不显示保存的会话数据,因为它是一个GET请求. 现在,如果尝试使用POST请求在任何其他方法中获取请求,它将在doLogin方法中更早地显示已保存的数据 //it's a POST requset public function test(Request $request) { $data = $request->session()->all(); print_r($data); } 如何在GET请求的方法中访问会话数据? 提前致谢, 更新: 请注意,在verifyCsrfToken middelwere的excepts区域添加网址“’/ admin / login_admin’”,以避免在发布数据时出现csrf令牌问题 namespace AppHttpMiddleware; use IlluminateFoundationHttpMiddlewareVerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ // 'url' => '/admin/login_admin' ]; } 解决方法
让我们这样试试吧
$input = $request->all(); // imagine you have Admin.php model $query = Admin::login($input['email'],$input['password'])->first(); if ($query) { Session::put('userId',$query->id); Session::save(); return "u're in"; } else{ return "User name or password is wrong"; } 并在您的测试功能 return $request->session()->get('userId'); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |