Laravel护照在尝试访问资源时显示此信息
Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable
答案 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
bin/openssl.exe
解压缩到环境变量路径目录中(您可以在用户文件夹中创建自己的bin文件夹,然后将该路径添加到路径变量中)php artisan passport:install
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 行。也许您的服务器不允许在目录中写入密钥文件。再次上传或发布您的仓库。