在Laravel 4中更改会话驱动程序时令牌不匹配

时间:2014-03-03 19:00:31

标签: php laravel-4

我对Laravel CSRF有疑问。

我在native会话驱动程序中测试我的代码,一切正常。但是当我将会话驱动程序更改为redis时,会发生令牌不匹配错误。

我也尝试清除缓存。但没有工作。

这是我的表单

{{ Form::open(array( 'route' => 'login' )) }}

    {{ Form::text('email') }}

    {{ Form::password('password') }}

    {{ Form::submit('Login') }}

{{ Form::close() }}

这是我的路线

Route::post('login', array('as' => 'login', 'before' => 'csrf', 'uses' => 'UserController@login') );

任何帮助?

1 个答案:

答案 0 :(得分:1)

验证会话确实存储在Redis中。

如果配置中的会话生存期设置为transient(0 = Expire-on-close),则密钥库将为空,并且不能匹配任何CSRF令牌。

如果Redis中存在 数据,请验证正在使用例如预期的令牌发送的令牌。 Firebug检查POST表单数据。