【问题标题】:Laravel not setting the XSRF-Token cookie on the live serverLaravel 未在实时服务器上设置 XSRF-Token cookie
【发布时间】:2018-12-19 13:47:18
【问题描述】:

我使用 Laravel 5.7.16 和 Angular2 创建了一个应用程序,并且在我的本地主机中一切正常。

但是,在实时服务器上,我在提交帖子请求时收到“419 错误”。经过一些研究,我得出结论,这可能是由于 XSRF-TOKEN 的问题。然后,当比较我的本地主机和实时服务器上发生的事情时,我注意到实时服务器没有在初始请求中设置 XSRF-TOKEN cookie。

我没有在我的 Angular2 HTTP 发布请求上明确设置 XSRF-TOKEN,但据我了解,只要 XSRF-TOKEN cookie 最初由服务器端应用程序设置,Angular2 就会自动执行此操作。

有人对我如何解决这个问题有任何想法吗?

编辑:我刚刚尝试将我的应用程序发布路由之一添加到 VerifyCsrfToken 的 $except 数组,并且有效。但是,这更多的是一种解决方法,而不是实际的解决方案。 有趣的是,在执行了“允许”的路由之后,XSRF-TOKEN 被返回,其他所有路由都正常工作。我认为这强化了这样一种想法,即问题在于 XSRF-TOKEN 没有在初始应用程序加载中返回。为什么会这样?

谢谢。

【问题讨论】:

    标签: angular laravel x-xsrf-token


    【解决方案1】:

    您好,我在本地机器上遇到了同样的问题。 XSRF-TOKEN cookie 未在浏览器上设置。我尝试了以下步骤,问题解决了。

    • 授予文件夹权限。 sudo chmod -R 777 storage bootstrap/cache
    • 清除配置和应用程序缓存。 php artisan cache:clear && php artisan config:clear

    【讨论】:

      【解决方案2】:

      尝试清除 Laravel 缓存

      php 工匠缓存:清除

      还要清除浏览器 cookie 以确保没有存储会话?

      【讨论】:

      • 嗨@Kiksy。我尝试清除 Laravel 缓存,但没有奏效。如果我使用与在本地主机中测试应用程序相同的浏览器,则本地主机设置的 cookie 可以通过 XSRF-TOKEN 检查。但是,如果我使用不同的浏览器,则不会设置 XSRF-TOKEN。我知道使用 api 路由而不是 web 路由或将 post 路由放入 VerifyCsrfToken 的 $except 数组的解决方法会起作用。但是,我想避免变通方法...
      猜你喜欢
      • 2021-04-05
      • 2019-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 2018-09-06
      • 1970-01-01
      • 2020-02-07
      • 2013-03-04
      相关资源
      最近更新 更多