Laravel 5.4 で API ルートを定義しています。これらのルートのほとんどは認証を必要とし、次のいずれかを使用してこの認証を実行できるようにしたいと考えています。
- トークン認証、つまり
auth:api
(異なるドメインの他の Web アプリで使用されます) - またはセッション/クッキー認証を使用する、つまり
auth
、プライマリ Web アプリでの AJAX 要求の場合
これを行うことは可能ですか、それとも別のルート グループ プレフィックスなどを使用して、すべてのルートを 2 回定義する必要がありますか? たとえば、すべてのセッション認証API エンドポイントを次のよう/ajax/api-endpoint
にし、すべてのトークン認証API エンドポイントを次のようにする必要があり/api/api-endpoint
ますか?
それは不器用で恣意的/api/api-endpoint
です。使用している認証方法に関係なくアクセスしたいのです。
次のように両方auth
とauth:api
ミドルウェアを指定すると、Laravel は成功する前にどちらか一方だけを要求するのではなく、両方の認証方法を要求するように見えます。
Route::get('api/user', 'MyUserController@index')->middleware(['auth', 'auth:api']);