laravel8で作ったRestfulメモAPIにユーザ認証(laravel-breeze-api@sanctum)をつけてみた。postmanも良いけどcurlの方が一行で使い方を説明できて良い。

laravel8で作ったRestfulメモAPIにユーザ認証(laravel-breeze-api@sanctum)をつけてみた。postmanも良いけどcurlの方が一行で使い方を説明できて良い。

参照URL
https://github.com/nrikiji/laravel-breeze-api/blob/master/README.ja.md

BreezeをベースとしたAPIエンドポイントを簡単に実装するためのパッケージがあったので採用。v0.0.3ってのが気になるが…。

app/Models/User.php

Sanctumとセッションを使用するためのミドルウェアをAPIに追加します
app/Http/Kernel.php

routes/api.php

windows10のコマンドプロンプトで実行すればOK
ユーザ認証後のトークンIDは、自分でコピペする必要がある。

ユーザー作成(自動的にログイン状態)

ログイン

自分のユーザー情報を取得

ログアウト

メモの全一覧(ログイン必要)

メモの登録(ログイン必要)

メモの登録(写真アップロード付)(ログイン必要)

メモの更新(urlの最後にメモID指定)(ログイン必要)

メモの削除(urlの最後にメモID指定)(ログイン必要)

メモの検索。検索だけログインしなくても実行できる

localhostからajaxでlogin(post)しようとすると、419エラー(csrf token mismatch)になる~。

APIはCSRFトークン対象外じゃないの!?と思ったら、SANCTUM認証のnrikiji/breeze-apiパッケージの実装に問題があったっぽい。
https://qiita.com/hikkappi/items/1b51b9e58e8e391762de

う~む。とりあえず、API関連だけcsrfトークンを無効化しておこう。apiによるユーザ認証は、どうするかな・・・。
app/Http/Middleware/VerifyCsrfToken.php