web-dev-qa-db-ja.com

Laravel Passport Key path oauth-public.keyは存在しないか、読み取り不能です

リソースにアクセスしようとしているときにこれを示すLaravelパスポート

Key path "file://C:\xampp\htdocs\rental_5.0\storage\oauth-public.key" does not exist or is not readable
26
Sabri Aziri

インストール手順については言及しません。次のことを行ったと仮定します。

composer require laravel/passport

config/app.php内にサービスプロバイダーを登録します

Laravel\Passport\PassportServiceProvider::class,

移行を実行する

php artisan migrate

最後に使用してキーを生成します

php artisan passport:install

Windowsで試しているようです。 Windows上のOpenSSLの問題 を見たので、助けになるかもしれません。

58
Leon Vismer

OpenSSLがWindowsマシンにインストールされていません

  1. ダウンロードGnuWi
  2. bin/openssl.exeを環境変数パスディレクトリに抽出します(ユーザーフォルダーなどに独自のbinフォルダーを作成し、そのパスをパス変数に追加できます)
  3. 新しいコマンドプロンプトを開きます(既存のものには最新の環境変数がない場合があります)
  4. php artisan passport:installを実行します

https://github.com/laravel/passport/issues/48#issuecomment-241936338

編集済み

Windowsでgit BASHを使用すると、追加のソフトウェアをインストールする必要はありません。BASHからphp artisan passport:installを実行するだけで機能します。

3
Sabri Aziri

passportが正しくインストールされていないため、このエラーが発生します

解決策はこのコマンドを実行するだけです:

php artisan passport:install
2
Udhav Sarvaiya

これは、パスポートキーを使用してOauthキーを生成しなかったためです。

走る

php artisan passport:keys

その後、次のコマンドを実行して、パーソナルアクセスクライアントを生成します

php artisan passport:client --personal

尋ねる詳細を入力します。これで完了です。

2
Nelson Guest

Herokuを使用します。私の知る限り、HerokuはデフォルトでOpenSSLサポートを追加します( https://devcenter.heroku.com/articles/php-support )。

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でも問題はありません。

(同じキーをあちこちに持っていても大丈夫ですか?)

2
laze

Ubuntuでも同じエラーが発生しましたが、私の場合は権限に問題があり、これを実行すると問題が解決しました:

Sudo chown www-data:www-data storage/oauth-*.key

0
bruddha

私の場合、それはうまくいきません-私はすべてを試します-おそらくファイルアクセスに問題があります(ただしls -laはうまく見えます)-他のマシンでそのキーを生成し、サーバーにコピーします-そしてphp artisan passport:install startは動作します

0

多分 storage/oauth-private.keyおよびstorage/oauth-private.keyは存在せず、古いデータベースをインポートしました。このシナリオでは、次のコマンドを実行してください。

php artisan passport:keys

パスポート関連のデータがすでに保存されている古いデータベースをインポートした場合は、このソリューションを試してください。それ以外の場合は、受け入れられた回答に従ってください。

0
Mahbub

これが理想的な解決策であるかどうかはわかりませんが、/storage/*.key from .gitignoreその後、プッシュすることで、私にとってはうまくいきました。

0
Elvis Kirui

password_clientテーブルのoauth_clients値を手動で1に設定し、それが機能しました。

0
Allan Mwesigwa

ローカルシステムではすべてが正常に機能し、本番システムでも同じ問題に直面していました。私の場合、gitは正当な理由でキーを無視しました。実行されたphp artisan passport:keys本番サーバーではすべてが機能しました。

0
Ramesh Navi