LaravelでWebAPI利用時にトークン認証を行う方法

LaravelでWebAPI利用時にトークン認証を行う方法

この記事では以下の内容に関する環境構築方法を説明してます。

  1. WebAPIを利用する
  2. APIアクセス時はトークン認証を行う
  3. トークンはWeb画面でログイン認証後に発行する

Laravelプロジェクトの作成とユーザー認証処理は完了していることを前提に進めます。
またLaravelのバージョンは10となります。

公式のサイトを参考にされたい方はこちら
https://readouble.com/laravel/10.x/ja/sanctum.html

目次

Laravel Sanctumのインストール&設置

Laravel10では最初からcomposer.jsonに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用のトークン認証環境の作成方法になります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

関連広告

コメント

コメントする

目次