【问题标题】:Laravel csrf validation failing during unit testing (Laravel 4.1)Laravel csrf 验证在单元测试期间失败(Laravel 4.1)
【发布时间】:2014-03-29 19:32:04
【问题描述】:

我最近按照升级说明从 Laravel 4.0 升级到 4.1,现在在单元测试时我的 csrf 令牌将无法验证。我在这里发布了代码:http://laravel.io/bin/7qRx

在浏览网站和提交表单时,csrf 验证似乎工作正常,但是当我运行单元测试来验证相同的表单时,csrf 验证失败。它在升级到 4.1 之前工作。

我在这里发现了类似的问题,但也没有列出解决方案。 https://github.com/laravel/laravel/issues/2633

有什么想法吗?

【问题讨论】:

    标签: php validation unit-testing laravel laravel-4


    【解决方案1】:

    我的建议是在配置​​文件中设置一个测试 CSRF 令牌,并在过滤器中检查它。但这很混乱。

    【讨论】:

    • 这一直有效,直到我找到了使用 Session:start() 初始化会话的正确方法。
    【解决方案2】:

    我找到了解决方案。你必须添加

    会话::start();

    到 setup() 方法。解决调用路由时与会话相关的问题。

    显然 Laravel 在调用路由时会启动会话,如果尚未创建,则会覆盖之前的会话数据。

    根据此处发布的内容找到解决方案: Laravel 4 testing session in controllers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 2015-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 2016-05-23
      相关资源
      最近更新 更多