我对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') );
任何帮助?
答案 0 :(得分:1)
验证会话确实存储在Redis中。
如果配置中的会话生存期设置为transient(0 = Expire-on-close),则密钥库将为空,并且不能匹配任何CSRF令牌。
如果Redis中存在 数据,请验证正在使用例如预期的令牌发送的令牌。 Firebug检查POST表单数据。