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

Laravel 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, 运行迁

尝试访问资源时显示此信息的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,
运行迁移

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

  • 下载GnuWi
  • bin/openssl.exe
    提取到环境变量路径目录中(您可以在用户文件夹或其他内容中创建自己的bin文件夹,并将该路径添加到路径变量)
  • 打开新的命令提示符(现有的命令提示符可能没有最新的环境变量)
  • 运行php artisan passport:install
  • 编辑
    在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 cli
    heroku ps:exec
    运行的解决方案,然后运行命令
    php artisan passport:keys
    我从中打开了git bash项目文件夹。然后运行php artisan passport:安装,然后从git bash运行php artisan服务。接下来我给出了一个来自邮递员的请求,感谢您的编辑是的,但问题是我们必须设置权限的权限。不,这不是理想的解决方案。您应该在服务器上生成一个新的
    *.key
    文件。不要从本地计算机复制它。否则,您服务器上的持票人令牌密钥将能够使用本地计算机上的
    *.key
    破解。我同意您的看法@fendiSetiawan。这对我很有效,谢谢
    php artisan passport:client --personal