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);



 }



原作者:
...