Laravel Passport密钥路径oauth-public.Key不存在或不可读
尝试访问资源时显示此信息的Laravel passportLaravel Passport密钥路径oauth-public.Key不存在或不可读,laravel,laravel-5.3,Laravel,Laravel 5.3,尝试访问资源时显示此信息的Laravel passport Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable 您没有提到您的安装步骤。假设你做了以下事情: 编写者需要laravel/passport 在config/app.php Laravel\Passport\PassportServiceProvider::class, 运行迁
Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable
您没有提到您的安装步骤。假设你做了以下事情:
编写者需要laravel/passport
在config/app.php
Laravel\Passport\PassportServiceProvider::class,
运行迁移
php artisan迁移
最后,使用
php artisan passport:安装
我看到你正在Windows上试用它。我看到了一个,可能会帮助你。我使用Heroku。据我所知,Heroku默认添加OpenSSL支持() 所有的东西,比如php artisan install:passport运行时没有任何问题,我的项目也可以在web上找到 当我询问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
bin/openssl.exe
提取到环境变量路径目录中(您可以在用户文件夹或其他内容中创建自己的bin文件夹,并将该路径添加到路径变量)在windows中,使用
git BASH
无需安装任何其他软件,只需从BASH
运行php artisan passport:install
,它应该可以工作。与Ubuntu有相同的错误,在我的情况下,问题是权限问题,运行它解决了问题:
sudo chown www-data:www-data-storage/oauth-*.key
我在oauth\u-clients
表中将我的password\u-client
值手动设置为1
,并且它工作正常。由于passport
安装不正确,所以出现此错误
解决方案很简单,只需运行以下命令:
php artisan passport:install
在本地系统中,一切正常,在生产系统中也面临同样的问题。在我的例子中,git有充分的理由忽略键。
刚刚在生产服务器上执行了
php artisan passport:keys
,一切正常。可能是存储/oauth private.key
和存储/oauth private.key
不存在,您导入了旧数据库。对于此场景,请运行以下命令
php artisan passport:keys
如果您导入了已存储passport相关数据的旧数据库,请尝试此解决方案。否则,请遵循已接受的答案
我不知道这是否是理想的解决方案,但是从
.gitignore
中删除/storage/*.key
,然后按一下就可以了。这是因为您没有使用passport密钥生成Oauth密钥
跑
之后,运行以下命令生成个人访问客户端
php artisan passport:client --personal
输入它询问您的详细信息。然后你就完成了。在我的情况下,它就是不起作用-我尝试了所有方法-可能是文件访问有问题(但是
ls-la
看起来不错)-所以我在其他机器中生成密钥并复制到serwer-和php artisan passport:install
start works直接转到laravel项目根目录中的.gitignore文件并删除/storage/*.key行。可能您的服务器不允许在目录中写入密钥文件。再次上传或发布您的回购协议。那么,权限是什么?另外,您的openssl
executableUp在windowns上的openssl问题的位置在哪里,GnuWin似乎是我的问题。在生产laravel forge中遇到这个问题时,您需要简单地将ssh转换为forge“ssh”forge@ip_address_here,然后只需运行“php artisan passport:install--force”(强制覆盖密钥)这将生成密钥并将它们放置到位如果您在windows中,您应该安装openSSL(请阅读下面的帖子),我不确定这是否可以,但出于安全原因,请在生产中添加另一个密钥。我认为您的答案值得投票支持。出于任何原因,可能出于安全目的,它在.gitignore中被忽略,heroku抛出了错误500。所以在我的例子中,我只需要将它从.gitignore中删除并按下,它就可以工作了。我还尝试使用命令行在heroku上运行php artisan passport:install或passport:keys,但没有效果。在版本控制中使用私钥通常是不好的做法。我找到了一个使用heroku cliheroku ps:exec
运行的解决方案,然后运行命令php artisan passport:keys
我从中打开了git bash项目文件夹。然后运行php artisan passport:安装,然后从git bash运行php artisan服务。接下来我给出了一个来自邮递员的请求,感谢您的编辑是的,但问题是我们必须设置权限的权限。不,这不是理想的解决方案。您应该在服务器上生成一个新的*.key
文件。不要从本地计算机复制它。否则,您服务器上的持票人令牌密钥将能够使用本地计算机上的*.key
破解。我同意您的看法@fendiSetiawan。这对我很有效,谢谢
php artisan passport:client --personal