Laravel 会话在重新加载后重置

Laravel 会话在重新加载后重置

我的 laravel 会话似乎不起作用。

当我重新加载页面时,所有会话数据似乎都丢失了。

IE:

  • CSRF令牌
  • 会话::put('键','值');
  • 会话::获取('键');

CSRF 令牌

登录表单:

Session::token() => Cr3TwtQOWg6O2zV8rfksTQfqwEb3NxXjmIiA54kX
<input name="_token" type="hidden" value="Cr3TwtQOWg6O2zV8rfksTQfqwEb3NxXjmIiA54kX">

但是当表单提交时:

Session::token() => gIDZJ4aP3zw3cdZm3BjRHo05TMWrIfNiiBjSIfni
Input::get('_token') => Cr3TwtQOWg6O2zV8rfksTQfqwEb3NxXjmIiA54kX

会话::put/get

登录表单:

Session::put('token_session_test', 'This is a string that should verify that the session works');

Session::get('token_session_test') => This is a string that should verify that the session works

提交时:

Session::get('token_session_test') => 

有谁知道为什么会发生这种情况或如何解决?

提前致谢!

答案1

您需要在 routes.php 中添加一个路线组。

Route::group(array('before' => 'csrf'), function()
{
    Route::post(....); // here you can add login post where you can validate username and password
});

在登录视图中您需要添加{{ 表单::token(); }}带刀片

每次刷新都会生成 csrf 令牌。

答案2

最终发现,该配置被设置为将 cookie 保存在该服务器不再所属的子域中,因此它从未被重用,并且每次请求都会生成一个新的会话。

相关内容