概要
ララベル(Laravel)でトークンベース認証システムを実装するためjwt(Json Web Token)を使ってみようかと思います。jwt認証システムを自ら全て実装するには難しいし時間も結構かかります。それで私たちはtymon/jwt-authミドルウェア(Middleware)を使ってjwt認証システムを開発してみようとします。
このブログではtymon/jwt-auth
をインストールして設定する方法について説明します。tymon/jwt-auth
に関してもっと詳しくは下記のリンクを参考してください。
- tymon/jwt-auth: https://github.com/tymondesigns/jwt-auth
- tymon/jwt-auth document: https://jwt-auth.readthedocs.io/en/develop/
リポジトリ(Repository)
私たちはjwt認証システムを実装したリポジトリ(Repository)を作りました。下記のリンクを押してリポジトリ(Repository)を確認してみてください。
- laravel-jwt-exercise: https://github.com/dev-yakuza/laravel-jwt-exercise
開発環境構成
ここで説明する内容はLaradockとアンシブル(Ansible)を使って作ったララベル(Laravel)開発環境上で開発やテストします。Laradockとアンシブル(Ansible)を使ってララベル(Laravel)開発環境については下のブログを参考してください。
ミドルウェア(Middleware)インストール
jwt認証システムを開発するため下記のcomposerコマンドでtymon/jwt-auth
ミドルウェア(Middleware)をインストールします。
# vagrant ssh
# sudo docker exec -it laradock_workspace_1 bash
composer require tymon/jwt-auth
プロバイダー設定
ララベル(Laravel)プロジェクトへconfig/app.php
ファイルを開いて下記のようにプロバイダー(Provider)を設定します。
...
'providers' => [
...
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
...
]
...
設定が完了されたら下のartisanコマンドでミドルウェア(Middleware)を適用します。
# vagrant ssh
# sudo docker exec -it laradock_workspace_1 bash
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
下記のようにエラーが発生したら
In ProviderRepository.php line 208:
Class 'Tymon\JWTAuth\Providers\LaravelServiceProvider' not found
インストールしたtymon/jwt-auth
ミドルウェア(Middleware)のバージョンをアップデートをする必要があります。composer.json
ファイルを下のように修正します。
...
"require": {
...
"tymon/jwt-auth": "^1.0.0-rc.3"
...
},
...
バージョンを修正したら下記のようにcomposerコマンドでバージョンをアップデートします。
composer update
そしてまたartisanコマンドでミドルウェア(Middleware)を適用します。
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
シークレットキー生成
インストールしたtymon/jwt-auth
ミドルウェア(Middleware)が使えるシークレットキー(secret key)を生成します。
php artisan jwt:secret
環境設定ファイルである.env
を開いて下の部分に下記のような内容が追加されたか確認します。
JWT_SECRET=*******
完了
jwt(Json Web Token)ベース認証システムを開発するためtymon/jwt-auth
ミドルウェア(Middleware)をインストールや設定する方法について見てみました。次のブログでは実際jwtを使って認証システムを開発する方法について紹介します。
参考
- tymon/jwt-auth: https://github.com/tymondesigns/jwt-auth
- tymon/jwt-auth document: https://jwt-auth.readthedocs.io/en/develop/
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。