【问题标题】:Laravel Passport Key path oauth-public.key does not exist or is not readableLaravel Passport Key 路径 oauth-public.key 不存在或不可读
【发布时间】:2017-01-17 19:18:03
【问题描述】:

Laravel 护照在尝试访问资源时显示此内容

Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable

【问题讨论】:

  • 那么,权限是什么?另外,openssl 可执行文件的位置在哪里

标签: laravel laravel-5.3


【解决方案1】:

你没有提到你的安装步骤。假设您执行了以下操作:

composer require laravel/passport

config/app.php内注册服务提供者

Laravel\Passport\PassportServiceProvider::class,

运行迁移

php artisan migrate

最后生成密钥使用

php artisan passport:install

我看到您正在 Windows 上尝试它。我看到了OpenSSL problem on Windows,可能对你有帮助。

【讨论】:

  • 解决 windows 上的 OpenSSL 问题,GnuWin 似乎是我的问题
  • 在生产 laravel forge 中遇到此问题的任何人,您只需 ssh 进入 forge "ssh forge@ip_address_here" ,然后只需运行 "php artisan passport:install --force" (强制覆盖密钥) 这将生成密钥并将它们放在适当的位置
【解决方案2】:

这是因为您没有使用护照密钥生成 Oauth 密钥。

运行

php artisan passport:keys

之后运行以下命令生成个人访问客户端

php artisan passport:client --personal

输入它询问您的详细信息。然后你就完成了。

【讨论】:

  • 为我工作,谢谢
【解决方案3】:

可能是storage/oauth-private.keystorage/oauth-private.key 不存在并且您导入了旧数据库。对于这种情况,请运行以下命令。

php artisan passport:keys

如果您导入了已存储护照相关数据的旧数据库,请尝试此解决方案。否则,请按照接受的答案。

【讨论】:

    【解决方案4】:

    在 Ubuntu 上遇到同样的错误,在我的情况下,问题出在权限上,运行它解决了问题:

    sudo chown www-data:www-data storage/oauth-*.key

    【讨论】:

      【解决方案5】:

      我们收到此错误是因为 passport 未正确安装

      解决方案很简单,只需运行以下命令:

      php artisan passport:install
      

      【讨论】:

        【解决方案6】:

        OpenSSL 没有安装在我的 windows 机器上

        1. 下载 GnuWi
        2. bin/openssl.exe 解压到环境变量路径目录中(您可以在用户文件夹或其他地方创建自己的 bin 文件夹,然后将该路径添加到路径变量中)
        3. 打开一个新的命令提示符(现有的可能没有最新的环境变量)
        4. 运行php artisan passport:install

        https://github.com/laravel/passport/issues/48#issuecomment-241936338

        已编辑

        在 windows 中使用git BASH 不需要安装任何额外的软件,只需从BASH 运行php artisan passport:install 就可以了。

        【讨论】:

        • 我从项目文件夹中打开了 git bash。然后运行 ​​php artisan passport:install 然后从 git bash 运行 php artisan serve。接下来我向邮递员提出要求,感谢这个版本
        【解决方案7】:

        直接进入 laravel 项目根目录下的 .gitignore 文件,删除 /storage/*.key 行。也许您的服务器不允许在目录中写入密钥文件。再次上传或发布您的存储库。

        【讨论】:

          【解决方案8】:

          我使用 Heroku。据我所知,Heroku 默认添加 OpenSSL 支持 (https://devcenter.heroku.com/articles/php-support)。

          所有的东西,比如php artisan install:passport 确实运行没有任何问题,我的项目也可以在网上找到。

          当我要求php artisan route:list 时,我收到了这个异常:

          [LogicException]
            Key path "file:///app/storage/oauth-private.key" does not exist or is not readable
          

          在我看来和上面一样。

          我在本地也成功完成了所有操作。在这些步骤之后,git 显示我的存储文件夹中有密钥,所以我提交并将它们推送到 Heroku。

          这解决了问题,现在 Heroku 上也一切正常。

          (可以在这里和那里有相同的键吗?)

          【讨论】:

          • 如果你在windows中,你应该安装openSSL(请阅读下面的帖子),我不确定它是否可以,但出于安全原因,请在生产中添加另一个密钥。
          • 我认为您的回答值得一票。不管出于什么原因,可能是出于安全目的,它在 .gitignore 中被忽略了,heroku 抛出错误 500。所以在我的情况下,我只需将它从 .gitignore 中删除并推送,它就可以工作了。我还尝试使用命令行在 heroku 上运行 php artisan passport:install 或 passport:keys,但它不起作用。
          • 在版本控制中使用私钥通常是一种不好的做法。
          • 我找到了一个使用 heroku cli heroku ps:exec 然后运行命令 php artisan passport:keys 的解决方案
          【解决方案9】:

          我手动将oauth_clients 表中的password_client 值设置为1,它起作用了。

          【讨论】:

            【解决方案10】:

            在本地系统上一切正常,在生产系统上遇到同样的问题。就我而言,git 忽略了键是有充分理由的。 刚刚在生产服务器上执行 php artisan passport:keys 一切正常。

            【讨论】:

              【解决方案11】:

              我不知道这是否是理想的解决方案,但从 .gitignore 中删除 /storage/*.key 然后 push 对我来说是诀窍。

              【讨论】:

              • 是的,但问题是我们必须设置权限。
              • 不,这不是理想的解决方案。您应该在服务器上生成一个新的*.key 文件。不要从本地机器上复制它。否则,来自服务器的不记名令牌密钥将能够使用本地计算机上的*.key 破解。
              • 我同意你的看法@fendiSetiawan。
              • 我也同意这一点。这在当时是一个快速的解决方案
              【解决方案12】:

              在我的情况下,它只是不起作用-我尝试everyging-可能是文件访问问题(但是ls -la 看起来不错)-所以我在其他机器上生成该密钥并复制到服务器-php artisan passport:install 开始工作

              【讨论】:

                【解决方案13】:

                将它添加到 composer.json 对我来说是诀窍:

                "scripts": { "post-install-cmd": [ "php artisan clear-compiled", "php artisan optimize", "chmod -R 777 storage", "php artisan passport:keys" ], }
                

                https://github.com/laravel/passport/issues/267#issuecomment-346627625

                【讨论】:

                  猜你喜欢
                  • 2021-03-19
                  • 1970-01-01
                  • 2021-03-20
                  • 1970-01-01
                  • 2017-08-05
                  • 1970-01-01
                  • 2017-12-06
                  • 2018-07-10
                  • 2018-09-21
                  相关资源
                  最近更新 更多