Laravel Passport密钥路径oauth-public.key不存在或不可读

时间:2016-09-09 15:24:11

标签: laravel laravel-5.3

Laravel护照在尝试访问资源时显示此信息

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

12 个答案:

答案 0 :(得分:52)

您没有提及安装步骤。假设你做了以下事情:

composer require laravel/passport

config/app.php

中注册服务提供商
Laravel\Passport\PassportServiceProvider::class,

运行迁移

php artisan migrate

最后使用

生成密钥
php artisan passport:install

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

答案 1 :(得分:2)

我使用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上也没问题。

(可以,在这里和那里使用相同的键吗?)

答案 2 :(得分:2)

我的Windows机器上没有安装OpenSSL

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

    被修改

    在使用git BASH的Windows中,您不需要安装任何其他软件,只需从php artisan passport:install运行BASH即可。

答案 3 :(得分:2)

由于未正确安装passport,我们收到此错误

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

php artisan passport:install

答案 4 :(得分:0)

与Ubuntu有同样的错误,在我的情况下,问题在于权限,运行它解决了这个问题:

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

答案 5 :(得分:0)

我手动将password_client表格中的oauth_clients值设置为1,然后就可以了。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

php artisan passport:keys
  

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

答案 8 :(得分:0)

我不知道这是否是理想的解决方案,但是从/storage/*.key中删除了.gitignore并推动了我。

答案 9 :(得分:0)

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

运行

php artisan passport:keys

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

php artisan passport:client --personal

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

答案 10 :(得分:0)

在我的情况下,它不起作用-我尝试进行整顿-可能是文件访问出现问题(但是ls -la看起来不错)-因此我在其他计算机上生成了该密钥并复制到服务器-和php artisan passport:install开始工作

答案 11 :(得分:0)

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