我知道我的问题不是因为Laravel,而很可能是PHP配置(会话),但我不确定要检查什么。我在homestead
上运行这个特定的项目,它很好。现在,在我提交一个表单(它是一个步骤控制器,post
表单->转到步骤2等)并刷新页面后,我的csrf令牌无效。
我以为这是因为会话生存期等或新令牌的生成,但没有。token是相同的,但我刷新页面后仍然得到TokenMismatchException
。
环境和宅基地差不多(nginx(最新),php(5.6,我不知道homestead有什么))。登录工作正常,我保持登录,而浏览,但当我通过的步骤,这种情况发生。
问题及解决方案:
根据我忘记更新的评论,我发现问题实际上是事实,开发服务器被迫通过cloudflare,但Laravel中的基本URL留在http://...
-我只是添加到AppServiceProvider
$this->app['request']->server->set('HTTPS', true);
而且它没有出现验证错误。
2条答案
按热度按时间tvokkenx1#
您是否在提交表单时发送一个csrf令牌?如果没有:你是如何建立你的表单的,用FormBuilder还是Html?
FormBuilder
在表单生成器中,CSRF令牌已经发布,因此不需要发送它。
Html
您没有提供错误日志,请在您的laravel项目中检查存储/日志,然后向我们提供错误,以便我们可以帮助您。
2ul0zpep2#
根据我忘记更新的评论,我发现问题实际上是事实,开发服务器被迫通过cloudflare,但Laravel中的基本URL留在
http://...
-我只是添加到AppServiceProvider
而且它没有出现验证错误。