【问题标题】:Laravel 5.5. sharing sessions拉拉维尔 5.5。分享会
【发布时间】:2018-05-26 05:45:37
【问题描述】:

我在以这种方式通信时遇到 CSRF 令牌问题

subdomain --> domain

我已将session.php 设置为具有值

"domain" => "." . env('APP_URL'),

当我检查 cookie 时,它​​们的值确实为 .example.com

即使这样,我在尝试转发登录 POST 请求时仍收到 TokenMissmatchException

这可以做到吗,还是用这种方法只与子域通信,而不是主域?

【问题讨论】:

  • 两台服务器是否使用相同的会话驱动程序和会话存储在同一位置?
  • 这是一个 Laravel 应用程序。没有多个服务器,所以他们共享session.php
  • 您使用的是什么会话驱动程序?
  • 文件。 blahblah 需要写 blah
  • 会话文件是否保存在storage/framework/sessions位置没有问题?您是否包含 X-CSRF-TOKEN 标头或 _token 参数以进行 csrf 检查?

标签: php laravel session token csrf


【解决方案1】:

key是否相同没关系,csrf_token必须是预期的。

确保您发送的是CSRF token with the request

【讨论】:

  • 我正在发送它们,但我在会话中获得了不同的令牌,而在请求中转发了一个
【解决方案2】:

错误是在Kernel.php 我有

\App\Http\Middleware\EncryptCookies::class,

列出了两次。在全局中间件和 web 中间件下,现在默认包含在所有 Laravel 路由中。它正在执行双重加密,因此产生了这种差异。

希望对某人有所帮助

【讨论】:

    猜你喜欢
    • 2018-05-31
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    相关资源
    最近更新 更多