0

Laravel 5.4 で API ルートを定義しています。これらのルートのほとんどは認証を必要とし、次のいずれかを使用してこの認証を実行できるようにしたいと考えています。

  • トークン認証、つまりauth:api(異なるドメインの他の Web アプリで使用されます)
  • またはセッション/クッキー認証を使用する、つまりauth、プライマリ Web アプリでの AJAX 要求の場合

これを行うことは可能ですか、それとも別のルート グループ プレフィックスなどを使用して、すべてのルートを 2 回定義する必要がありますか? たとえば、すべてのセッション認証API エンドポイントを次のよう/ajax/api-endpointにし、すべてのトークン認証API エンドポイントを次のようにする必要があり/api/api-endpointますか?

それは不器用で恣意的/api/api-endpointです。使用している認証方法に関係なくアクセスしたいのです。

次のように両方authauth:apiミドルウェアを指定すると、Laravel は成功する前にどちらか一方だけを要求するのではなく、両方の認証方法を要求するように見えます。

Route::get('api/user', 'MyUserController@index')->middleware(['auth', 'auth:api']);

4

1 に答える 1