我知道我的问题不是因为Laravel而是很可能是php配置(会话),但我不知道该检查什么。我在homestead
上运行这个特定的项目,很好。现在,在我提交表单(它是一个步骤控制器,post
表单 - >转到第2步等)并刷新页面后,我的csrf令牌无效。
我认为这是因为会话生命周期和此类或新令牌的生成,但没有..令牌是相同的,但在刷新页面后我仍然得到TokenMismatchException
。
环境与宅基地几乎相同(nginx(最新),php(5.6,我不知道什么是宅基地))。登录工作正常,我在浏览时保持登录状态,但是当我完成这些步骤时,就会发生这种情况。
问题&溶液
根据我忘记更新的评论,我发现问题实际上是,dev服务器被强制通过cloudflare,但是Laravel的基本URL留在http://...
- 我刚添加到AppServiceProvider
$this->app['request']->server->set('HTTPS', true);
并且没有执行验证错误。
答案 0 :(得分:0)
您是否使用您提交的表单发送了csrf令牌?如果没有:你是如何使用FormBuilder或Html构建表单的?
<强> FormBuilder 强>
在formbuilder中,CSRF令牌已经发布,因此不需要发送它。
<强> HTML 强>
<form method="POST" action="/profile">
{{ csrf_field() }} //This is what you need!
...
</form>
您没有提供错误日志,请检查您的laravel项目中的存储/日志,然后向我们提供错误,以便我们为您提供帮助。
答案 1 :(得分:0)
根据我忘记更新的评论,我发现问题实际上是,dev服务器被强制通过cloudflare,但是Laravel的基本URL留在http://...
- 我刚添加到AppServiceProvider
$this->app['request']->server->set('HTTPS', true);
并且它没有执行验证错误。