Laravel Passport 密钥路径 oauth-public.key 不存在或不可读
Laravel Passport Key path oauth-public.key does not exist or is not readable
Laravel 护照在尝试访问资源时显示此内容
Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable
你没有提到你的安装步骤。假设您执行了以下操作:
composer require laravel/passport
在里面注册服务提供者config/app.php
Laravel\Passport\PassportServiceProvider::class,
运行 迁移
php artisan migrate
最后使用
生成密钥
php artisan passport:install
我看到你正在 Windows 上试用。我看到一个 OpenSSL problem on Windows,可能对你有帮助。
我使用 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
- 下载GnuWi
- 将
bin/openssl.exe
提取到环境变量路径目录中(您可以在用户文件夹或其他内容中创建自己的 bin 文件夹,并将该路径添加到路径变量中)
- 打开一个新的命令提示符(现有的可能没有最新的环境变量)
- 运行
php artisan passport:install
https://github.com/laravel/passport/issues/48#issuecomment-241936338
已编辑
在 windows 中,通过使用 git BASH
,您不需要安装任何其他软件,只需从 BASH
运行 php artisan passport:install
安装,它应该可以工作。
与 Ubuntu 有同样的错误,在我的情况下,问题出在权限上,运行 这解决了问题:
sudo chown www-data:www-data storage/oauth-*.key
我手动将 oauth_clients
table 中的 password_client
值设置为 1
并且有效。
我们收到此错误是因为 passport
未正确安装
解决方案很简单 运行 这个命令:
php artisan passport:install
在本地系统上一切正常,在生产系统上面临同样的问题。在我的例子中,git 有充分的理由忽略了键。
刚刚在生产服务器上执行 php artisan passport:keys
一切正常。
可能是 storage/oauth-private.key
而 storage/oauth-private.key
不存在并且您导入了旧数据库。对于这种情况,请 运行 以下命令。
php artisan passport:keys
Try this solution if you imported the old database where passport related data already stored. Otherwise, follow the accepted answer.
我不知道这是否是理想的解决方案,但是从 .gitignore
中删除 /storage/*.key
然后推送对我来说是个窍门。
这是因为您没有使用护照密钥生成 Oauth 密钥。
运行
php artisan passport:keys
之后运行下面命令生成个人访问客户端
php artisan passport:client --personal
输入它询问您的详细信息。那你就大功告成了。
在我的情况下,它只是不起作用 - 我尝试每一次 - 可能是文件访问问题(但是 ls -la
看起来不错) - 所以我在其他机器上生成该密钥并复制到服务器 - 和 php artisan passport:install
开始工作
直接转到 laravel 项目根目录中的 .gitignore 文件并删除 /storage/*.key 行。也许您的服务器不允许在目录中写入密钥文件。再次上传或发布您的存储库。
将此添加到 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
Laravel 护照在尝试访问资源时显示此内容
Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable
你没有提到你的安装步骤。假设您执行了以下操作:
composer require laravel/passport
在里面注册服务提供者config/app.php
Laravel\Passport\PassportServiceProvider::class,
运行 迁移
php artisan migrate
最后使用
生成密钥php artisan passport:install
我看到你正在 Windows 上试用。我看到一个 OpenSSL problem on Windows,可能对你有帮助。
我使用 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
- 下载GnuWi
- 将
bin/openssl.exe
提取到环境变量路径目录中(您可以在用户文件夹或其他内容中创建自己的 bin 文件夹,并将该路径添加到路径变量中) - 打开一个新的命令提示符(现有的可能没有最新的环境变量)
- 运行
php artisan passport:install
https://github.com/laravel/passport/issues/48#issuecomment-241936338
已编辑
在 windows 中,通过使用 git BASH
,您不需要安装任何其他软件,只需从 BASH
运行 php artisan passport:install
安装,它应该可以工作。
与 Ubuntu 有同样的错误,在我的情况下,问题出在权限上,运行 这解决了问题:
sudo chown www-data:www-data storage/oauth-*.key
我手动将 oauth_clients
table 中的 password_client
值设置为 1
并且有效。
我们收到此错误是因为 passport
未正确安装
解决方案很简单 运行 这个命令:
php artisan passport:install
在本地系统上一切正常,在生产系统上面临同样的问题。在我的例子中,git 有充分的理由忽略了键。
刚刚在生产服务器上执行 php artisan passport:keys
一切正常。
可能是 storage/oauth-private.key
而 storage/oauth-private.key
不存在并且您导入了旧数据库。对于这种情况,请 运行 以下命令。
php artisan passport:keys
Try this solution if you imported the old database where passport related data already stored. Otherwise, follow the accepted answer.
我不知道这是否是理想的解决方案,但是从 .gitignore
中删除 /storage/*.key
然后推送对我来说是个窍门。
这是因为您没有使用护照密钥生成 Oauth 密钥。
运行
php artisan passport:keys
之后运行下面命令生成个人访问客户端
php artisan passport:client --personal
输入它询问您的详细信息。那你就大功告成了。
在我的情况下,它只是不起作用 - 我尝试每一次 - 可能是文件访问问题(但是 ls -la
看起来不错) - 所以我在其他机器上生成该密钥并复制到服务器 - 和 php artisan passport:install
开始工作
直接转到 laravel 项目根目录中的 .gitignore 文件并删除 /storage/*.key 行。也许您的服务器不允许在目录中写入密钥文件。再次上传或发布您的存储库。
将此添加到 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