メサイア・ワークス

Laravel8+SanctumでAPI認証その1(インストールから未認証だったら401を返す所まで)

Laravel8+SanctumでAPI認証その1(インストールから未認証だったら401を返す所まで)

https://reffect.co.jp/laravel/laravel-sanctum-token

1, 普通にlaravelをインストール

2. sanctumをインストール

3. 適当なユーザレコードをseederで作る
databases/migrations/seeders/DatabaseSeeder.php

phpMyAdminなんかで、作成されたemailを取得。パスワードはpassword固定

4. 自動ログイン→トークン作成→ブラウザに表示

routes/web.php

Laravel\Sanctum\NewAccessToken {#1081 ▼
+accessToken: Laravel\Sanctum\PersonalAccessToken {#1170 ▶}
+plainTextToken: “1|uPlPwEI9YB5Y6RQTUdZx1wx6ko0lkwwyxEEJP24Q”
}

personal_access_tokensテーブルにトークンは保存される。
tokenカラムにある値は、plainTextTokenがハッシュ化され保存されているので文字列が違う

5. laravelのAPIを使ってみる

routes/api.php

問題なく表示される
http://localhost/laravel8/public/api/test

認証が必要なAPIにアクセスするとRoute [login] not defined.というエラー画面がブラウザ上に表示される・・・。
http://localhost/laravel8/public/api/user

APIアクセスした時に、認証エラー画面を返してもしょうがないので、エラーコードとメッセージを返す
https://laracasts.com/index.php/discuss/channels/laravel/custom-message-for-unauthorized-api-call-in-laravel-8

app/Http/Middleware/Authenticate.php

モバイルバージョンを終了