Laravel9でJWT認証のインストールエラー
概要
Laravel9の環境にJWT認証を導入しょうとしたらエラーが発生したのでメモしておく。
$ composer require tymon/jwt-auth
...
Problem 1
- Root composer.json requires tymon/jwt-auth ^0.5.12 -> satisfiable by tymon/jwt-auth[0.5.12].
- tymon/jwt-auth 0.5.12 requires illuminate/support ~5.0 -> found illuminate/support[v5.0.0, ..., 5.8.x-dev] but these were not loaded, likely because it conflicts with another require.
...
Installation failed, reverting ./composer.json and ./composer.lock to their original content.
どうやら「illuminate/support」のバージョンが条件に合わないって言われてそう...
tymon/jwt-auth 0.5.12 requires illuminate/support ~5.0 ...
とりあえず、現在インストールされている「illuminate/support」を確認してみる。
"require": {
...
"illuminate/support": "^6|^7|^8|^9",
...
},
ここが問題っぽいですね。
tymon/jwt-authを試す
Google先生に解決策を聞いてみると下記サイトがヒットする。
試してみるが...
$ composer require tymon/jwt-auth --ignore-platform-reqs
...
Problem 1
- tymon/jwt-auth[dev-develop, 1.0.1, ..., 1.0.2] require illuminate/auth ^5.2|^6|^7|^8 -> found illuminate/auth[v5.2.0, ..., 5.8.x-dev, v6.0.0, ..., 6.x-dev, v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
...
You can also try re-running composer require with an explicit version constraint,
e.g. "composer require tymon/jwt-auth:*" to figure out if any version is installable,
or "composer require tymon/jwt-auth:^2.1" if you know which you need.
駄目なようです。
コメントを見てみると...「tymon/jwt-auth:^2.1」との記載があるので試してみる。
$ composer require tymon/jwt-auth:^2.1
...
Problem 1
- Root composer.json requires tymon/jwt-auth ^2.1, found tymon/jwt-auth[dev-dependabot/composer/yoast/phpunit-polyfills-tw-1.0.0, dev-dependabot/add-v2-config-file, dev-master, dev-develop, 0.1.0, ..., 0.5.12, 1.0.0-alpha1, ..., 1.0.x-dev (alias of dev-develop), 2.0.x-dev] but it does not match the constraint.
これも駄目なようです。
tomfordrumm/jwt-authを試す
他に下記の記事も見かけました。
ライブラリが「tymon」から「tomfordrumm」に変わっているがこれを試してみる。
$ composer require tomfordrumm/jwt-auth:dev-develop
...
- Installing tomfordrumm/jwt-auth (dev-develop 63522f2): Extracting archive
32 package suggestions were added by new dependencies, use `composer suggest` to see details.
「dev-develop」バージョンなら、インストールが成功するようです。
Packagistで確認する
下記の2つの開発バージョンがありそう。
-
dev-develop
※ requires → php: ^7.2|^7.4|^8.0 -
2.0.x-dev
※ requires → php: ^7.4
ただし、「2.0.x-dev」は、現時点では PHP7.4まで しか対応してなさそう...
% docker-compose exec php composer require tomfordrumm/jwt-auth:2.0.x-dev
...
Problem 1
- Root composer.json requires tomfordrumm/jwt-auth 2.0.x-dev -> satisfiable by tomfordrumm/jwt-auth[2.0.x-dev].
- tomfordrumm/jwt-auth 2.0.x-dev requires php ^7.4 -> your php version (8.1.3) does not satisfy that requirement.
試している環境は、PHP8.1.3のため、この環境にはインストールできない。
$ php -v
PHP 8.1.3 (cli) ...
ということで「dev-develop」をとりあえず使ってみる。
Laravel設定
下記ファイルを修正してプロバイダー登録する。
'providers' => [
...
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
]
下記コマンドで設定ファイル(config/jwt.php)を追加する。
$ php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
Copied File [/vendor/tomfordrumm/jwt-auth/config/config.php] To [/config/jwt.php]
Publishing complete.
下記コマンドで.envファイルにJWTのシークレットキーを自動作成する。
$ php artisan jwt:secret
jwt-auth secret [*****************************] set successfully.
まとめ
「dev-develop」バージョンを指定したらインストールは可能 なようです。
ひとまずこれで開発作業続けてみます。
参考サイト
- jwt-auth: Quick start
- Problems installing tymon jwt auth in Laravel 9
- Multiple API Authentication using JWT in Laravel 9
以上
Author And Source
この問題について(Laravel9でJWT認証のインストールエラー), 我々は、より多くの情報をここで見つけました https://qiita.com/reflet/items/a04369c44640beb603ac著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .