php - PHP - 用戶登錄后,laravel 5會話未持久

116 0

登錄用戶后,在頁中不會保留登錄狀態,顯然它與Session::有關。

我登陸用戶的方式非常簡單


if (Auth::attempt(['email' => $data['email'], 'password' => $data['password']],


 isset($data['remember_me']) ? TRUE : FALSE))


{


 return redirect()->intended('/');


}



如果用戶未登錄,則簡單print_r(Session::all());將提供以下信息:


Array


(


 [_token] => wV8o75lZnCZ0f6CMMQgdBBM2AxSYjtWisAXx6TgZ


 [flash] => Array


 (


 [old] => Array


 (


 )



 [new] => Array


 (


 )



 )



 [_previous] => Array


 (


 [url] => http://localhost/public


 )



)



在用戶登錄到/后,數組如下所示:


Array


(


 [_token] => wV8o75lZnCZ0f6CMMQgdBBM2AxSYjtWisAXx6TgZ


 [flash] => Array


 (


 [old] => Array


 (


 )



 [new] => Array


 (


 )



 )



 [_previous] => Array


 (


 [url] => http://localhost/public/


 )



 [login_82e5d2c56bdd0811318f0cf078b78bfc] => 2


)



但是,在頁面刷新或重定向的操作之後,會話狀態將丟失。

我的config/session.php文件如下所示:


<?php



return [


 'driver' => env('SESSION_DRIVER', 'file'),


 'lifetime' => 120,


 'expire_on_close' => false,


 'encrypt' => false,


 'files' => storage_path('framework/sessions'),


 'connection' => null,


 'table' => 'sessions',


 'lottery' => [2, 100],


 'cookie' => 'laravel_session',


 'path' => '/',


 'domain' => null,


 'secure' => false,



];



时间: 原作者:

105 2

我遇到類似的問題,我只是調用:

 
Session::save();



 

在add/update/delete到會話存儲之後,看起來是這樣的:


$id = Input::get('id');


Session::forget('cart.' .$id);


Session::save();



原作者:
57 4

我解決了


'cookie' => 'laravel_session',




'cookie' => 'myapp_session',



原作者:
135 0

我不熟悉Laravel,但是在CodeIgniter上,我將用戶會話保存在CI的Session Class中,而Laravel也有一個。

用戶身份驗證時,只需保存它會話數據,如下所示:


Session::put('userData', 'value');



在每個頁面載入上,從會話獲取用戶數據:


$user = Session::get('userData');



if($user->id) echo 'user is logged-in'; //or if($user) - depends on what you store in 'userData' key


else echo 'guest only privilegies';



編輯:我看到你使用了Auth類,

http://laravel.io/forum/11-11-2014-authcheck-always-returning-false

更新:

這個開始,你應該嘗試更改驅動程序值,


'driver' => env('SESSION_DRIVER', 'file')




'driver' => 'file'



原作者:
114 0

如果你使用的是Laravel文件會話的默認值,你需要確保使用session.php文件中的2個事件。

  • 會話目錄(storage/framework/session/ )可寫
  • 登錄(/login)和檢查身份驗證(/dashboard)的路徑都在組內

例如。


Route::group(['middleware' => ['web']], function () {


 Route::get('/home/login', ['as' => 'login', 'uses' => 'HomeController@getLogin']);


Route::post('/home/login', ['as' => 'login', 'uses' => 'HomeController@postLogin']);


 Route::get('/home/dashboard', ['as' => 'home', 'uses' => 'HomeController@getDashboard']);


}



這在Laravel 5中為我工作

原作者:
115 5

例如Debian系統中的例子:

在命令提示符下,輸入date (你會看到日期),如果不正確,請按照以下說明操作:

  • apt-get install ntp
  • service ntp start

原作者:
94 2

使用"cookie"驅動程序而不是session.php (configsession.phpdriver )的"文件" 我使用「 Auth ::loginUsingId()」 API而不是「 Auth::loginUsingId()」 API登錄時遇到問題,它破壞了另一個請求的會話。

原作者:
95 2

我有這個問題,我解決了這個問題,Auth::attempAuth::login()不使用 echo, var_dump or dd()

現在工作


 public function testLogin(Request $request, $id){



 $user = Account::find($id);


 Auth::login($user);



 }



原作者:
...