[Laravel] Passportを使用したBearer token認証[4]
- 2020年10月16日
- 技術情報
今回はPHPのLaravelフレームワークのPassportを使用したBearer token認証の方法について紹介します。
本記事は前回の「[Laravel] Passportを使用したBearer token認証[3]]」の続きとなります。
今回は前回追加した認証テスト用ユーザーを使用してBearer tokenの発行と認証のテストをおこなっていきたいと思います。
Bearer tokenの発行と認証のテスト
Bearer tokenの発行と認証のテストをおこなうために「api.php」を以下のように編集をおこないます。
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
Route::get('/test', function(){
$user = App\User::find(1);
$token = $user->createToken('')->accessToken;
return response()->json(['token' => $token]);
});
上記のように編集をおこなうことでBearer tokenの発行および認証の確認が可能です。
今回は確認用ツールとして、Postmanを使用します。
Bearer tokenの発行
http://localhost/passporttest/public/api/test
上記URLにアクセスすることでBearer tokenが発行されます。
今回のサンプルではアクセスするだけで、すぐさまBearer tokenの発行をおこなっておりますが、実際のプロジェクトで使用する場合は、usersテーブルのID/PW照合処理などを挟んだ上でBearer tokenの発行をおこなうことになります。

上図のようにBearer tokenが発行されました。
Bearer tokenの認証
http://localhost/passporttest/public/api/user
上記URLをアクセスすることでBearer tokenによる認証の可否の確認がおこなえます。
Bearer tokenによる認証がOKの場合は、登録ユーザーの情報を返します。認証がNGの場合はExceptionが発生します。
■認証がOKの場合の例:

■認証がNGの場合の例:

Bearer tokenがヘッダに設定されていない場合や、サーバーから発行されたBearer tokenと異なる文字列のtokenがセットされている場合は認証NGとなります。
金曜日担当: nishida
nishida at 2020年10月16日 10:00:55