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,可能会帮助你。
我不知道这是否是理想的解决方案,但是从/storage/*.key
移除.gitignore
然后推送给我做了诀窍。
在我的情况下它只是不起作用 - 我尝试每一次 - 可能是文件访问的问题(但ls -la
看起来很好) - 所以我在其他机器生成该键并复制到serwer - 和php artisan passport:install
开始工作
我的Windows机器上没有安装OpenSSL
bin/openssl.exe
解压缩到环境变量路径目录中(您可以在用户文件夹中创建自己的bin文件夹,然后将该路径添加到Path Variable)php artisan passport:install
https://github.com/laravel/passport/issues/48#issuecomment-241936338
在windows中使用git BASH
你不需要安装任何额外的软件只运行php artisan passport:install
的BASH
它应该工作。
我用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上也没关系。
(可以,在这里和那里使用相同的键吗?)
我们收到此错误,因为未正确安装passport
解决方案很简单只需运行此命令:
php artisan passport:install
这是因为您没有使用护照密钥生成Oauth密钥。
跑
php artisan passport:keys
之后运行以下命令以生成个人访问客户端
php artisan passport:client --personal
输入要求您的详细信息。然后你就完成了。
与Ubuntu有同样的错误,在我的情况下,问题是权限,运行这解决了问题:
sudo chown www-data:www-data storage/oauth-*.key
我手动将password_client
表中的oauth_clients
值设置为1
并且它有效。
一切都在本地系统上运行良好,在生产系统上面临同样的问题。就我而言,git忽略了键是有充分理由的。刚刚在生产服务器上执行php artisan passport:keys
一切正常。
可能是storage/oauth-private.key
和storage/oauth-private.key
缺席并且您导入了旧数据库。对于此方案,请运行以下命令。
php artisan passport:keys
如果您导入已存储护照相关数据的旧数据库,请尝试此解决方案。否则,请按照接受的答案。