小编And*_*lin的帖子

Laravel 403 无效签名仅在 Nginx Web 服务器上

问题

我正在通过从 laravel签名路由文档复制和粘贴的 laravel 'temporarySignedRoute' 函数创建签名 URL ,在我的 Web 服务器上,该 url 输出为 403 无效签名。签名的 URL 在我的本地机器上工作,但在将其上传到我的测试服务器时,它给出了如下所示的错误。

在此处输入图片说明

我试过的

我一直在寻找解决方案一段时间,并尝试了许多已发布在堆栈溢出上的解决方案,但似乎没有任何解决方案可以解决我的问题。

我已经尝试了以下所有方法:

  • 通过 AppServiceProvider 强制所有路由到 https,这会强制所有 url 为 https,但给出了相同的结果。
  • 我尝试按照此处所述更改 Nginx 的配置。

  • 我还尝试添加 TrustProxies 中间件,并将代理配置为 '*' 或 all,就像 laravel 关于Trust Proxies的文档中所述,结果相同。

  • 停止 Web 服务器强制域到 https 以测试它是否只是 https 导致它,结果相同。

- 更新 -

vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php在尝试搜索项目中的任何线索时进入。我决定数据转储 (dd) 出它在我的本地和托管项目上比较的令牌,这就是结果。代码如下所示。

public function hasValidSignature(Request $request, $absolute = true)
{
    $url = $absolute ? $request->url() : '/'.$request->path();

    $original = rtrim($url.'?'.Arr::query(
        Arr::except($request->query(), 'signature')
    ), …
Run Code Online (Sandbox Code Playgroud)

php https nginx laravel

3
推荐指数
1
解决办法
2257
查看次数

标签 统计

https ×1

laravel ×1

nginx ×1

php ×1