Bearer認証を使う場合は、以下のようにクライアント側でAuthorizationヘッダーに直接設定する方法が一般的かと思います。
Authorization: `Bearer ${token}`,
ただ、この方法だとHttpOnlyなCookieを使用することができません。JavaScriptからアクセスすることができないからです。
そこで、Bearer以外の方法でSanctumで認証する方法はないかと思い調べると、意外と簡単に実装できました。↓
Sanctum::$accessTokenRetrievalCallback = function ($request) {
return トークンを取得するコード
};
たとえば、以下だとリクエストCookieから取得する例です。
Sanctum::$accessTokenRetrievalCallback = function ($request) {
return $request->cookie('api_token');
};
この方法だとHttpOnlyなCookieでも使うことができます。
コメント