API

Laravel6 jwt-auth トークンエラーハンドリング Middleware

Laravel

Laravelのミドルウェア機能を利用して実装していきます😊

LaravelのMiddlewareは

  • リクエストデータ → Middleware → コントローラ → モデル → コントローラ → レスポンス

 

トークンの検証用Middleware CheckToken

 

ミドルウェアの作成

 

ミドルウェアの実装

app/Http/Middleware/CheckRefreshToken.php

雛形ができたな!

 

 

カスタマイズしていく

app/Http/Middleware/CheckRefreshToken.php

 

ここで$next()クロージャを利用してコントローラにリクエストを送っています。

それからエラーハンドリングを行うので非同期的な実装になっています。

 

app/Http/Middleware/CheckAccessToken.php

 

 

 

 

コンフィグの設定

エラーメッセージのレスポンスデータを定義します。

 

config/error.php

 

コンフィグの反映

 

ミドルウェアの登録

routes/api.phpで利用できるようにKernel.phpに定義します。

 

app/Http/Kernel.php

 

ルーティング設定

api/V1_0/refresh-tokenを定義します。

 

routes/api.php

 

 

@see

YouTube

自責? おまえ嘘つくなよ

フリーターから正社員 インフラは2か月!

インフラにプログラミングは必要 SREのすすめ

ワイの部署がなくなりました

Laravel6 jwt-auth トークンエラーハンドリング Middleware”への4件のコメント

  1. Laravel:6
    tymon/jwt-auth: 1.0.0-rc.5

    WebAPIにてJWTを実装しています。
    ミドルウェアにて、トークンのチェックをしたく、参考にさせていただきました。
    ありがとうございます。
    トークンの発行やトークンのチェックは上手く動き、
    問題なさそうなのですが、VSCodeデバッグ時にログイン処理を行うと、必ず下記例外が発生します。
    Tymon\JWTAuth\Exceptions\JWTException: The token could not be parsed from the request

    ログイン処理時は、認証チェックは動かないはずなのですが、
    なぜでしょうか?

    ルーティングは下記のようにしています。

    // ゲスト
    Route::group([‘guest’,’api’],function ()
    {
    // ログイン
    Route::post(‘login’, ‘Auth\APILoginController@login’);
    });

    // JWT認証チェック
    Route::middleware([‘api’,’jwt_access’])->group(function ()
    {
    // ユーザー登録
    Route::post(‘register’, ‘Auth\APILoginController@register’);

    // ユーザー変更

    // ユーザー削除

    // ログアウト
    Route::post(‘logout’, ‘Auth\APILoginController@logout’);

    // リフレッシュ
    Route::post(‘refresh’, ‘Auth\APILoginController@refresh’);

    // ログインユーザー情報
    Route::post(‘me’, ‘Auth\APILoginController@me’);
    });

  2. 参考になられたみたいで良かったです☺️

    下記かな?
    https://stackoverflow.com/questions/39218757/laravel-jwt-auth-the-token-could-not-be-parsed-from-the-request

    ご提示された解像度ではこれ以上は難しいです、
    ごめんなさい😭
    少し先ですが1月25日に秋葉原で勉強会やるのでご都合よろしければ、
    懇親会でご状況を確認することはできます🐱🌟
    https://8989work.connpass.com/event/161585/

    1. 返信ありがとうございます。

      結論から言うと、VSCodeのデバック時に、左側のブレークポインにて、
      EverythingをOFFにすると、例外で止まる減少は起きなくなりました。
      ただ、ライブラリにて例外が発生するのは、まぁ気になりますが、
      実害なさそうなので、これで良しとします。
      ありがとうございました:D

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)