この記事では以下の内容に関する環境構築方法を説明してます。
- WebAPIを利用する
- APIアクセス時はトークン認証を行う
- トークンはWeb画面でログイン認証後に発行する
Laravelプロジェクトの作成とユーザー認証処理は完了していることを前提に進めます。
またLaravelのバージョンは10となります。
目次
Laravel Sanctumのインストール&設置
Composerコマンドでをインストールします。
composer require laravel/sanctum
設定ファイルなどを配備します。
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
DBにトークン管理用のテーブルを作成します。
php artisan migrate
トークン発行用のrouteを定義
まず、トークン発行用のrouteを定義します。
use App\Http\Controllers\GetTokenController;
// 他は省略
Route::get('/get_token', [GetTokenController::class, 'get'])->middleware(['auth', 'verified'])->name('get_token');
トークン発行処理
次にトークンを発行する処理を定義します。
もちろんログイン認証後にしか実行できない処理です。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class GetTokenController extends Controller
{
public function get(Request $request){
// ここで新規にトークンを発行しDBに登録する
$token = $request->user()->createToken($request->token_name);
// クライアント側にトークン文字列を返す(ここで返された文字列をBearerTokenとしてAPIアクセス時に利用する)
return ['token' => $token->plainTextToken];
}
}
WebAPIのルートを定義
ここまででトークンの発行処理が作れたので、あとはWebAPIアクセス用のルートやコントローラを定義します。
Route::middleware('auth:sanctum')->get('/get_data', function (Request $request) {
return $request->user();
});
以上、シンプルですがWebAPI用のトークン認証環境の作成方法になります。
コメント