我的 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 保存在该服务器不再所属的子域中,因此它从未被重用,并且每次请求都会生成一个新的会话。