jwtインストールや設定

2019-05-23

ララベル(Laravel)にトークンベース認証システムを実装するためjwt(Json Web Token)ミドルウェア(Middleware)をインストールして設定する方法について説明します。

概要

ララベル(Laravel)でトークンベース認証システムを実装するためjwt(Json Web Token)を使ってみようかと思います。jwt認証システムを自ら全て実装するには難しいし時間も結構かかります。それで私たちはtymon/jwt-authミドルウェア(Middleware)を使ってjwt認証システムを開発してみようとします。

このブログではtymon/jwt-authをインストールして設定する方法について説明します。tymon/jwt-authに関してもっと詳しくは下記のリンクを参考してください。

リポジトリ(Repository)

私たちはjwt認証システムを実装したリポジトリ(Repository)を作りました。下記のリンクを押してリポジトリ(Repository)を確認してみてください。

開発環境構成

ここで説明する内容は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を使って認証システムを開発する方法について紹介します。

参考

Buy me a coffeeBuy me a coffee
Posts