1

Slim を使用して REST API を作成しています。API の一部にはログインが必要で、一部は公開する必要があります。認証には、Slim Extras の StrongAuth ミドルウェアを使用しています。

残念ながら、認証が提供されず、アプリのミドルウェアである場合 (すべてかゼロかのように見えます)、StrongAuth はリクエストを強制終了します。そのため、StrongAuth によって完全に保護された API を構築し、ダミーのログインでパブリック リソースにアクセスできるようにしました。 .

ただし、これは理想的ではありません。セキュリティで保護されていないリソースが必要です。同じファイルで 2 つのアプリを実行しようとしましたが、そのうちの 1 つが常に 404 エラーをスローします。これは明らかに受け入れられません。

アプリレベルのミドルウェアをスリムの一部のルートのみに適用する方法、または同じファイルで複数のスリムアプリを問題なく実行する方法を知っている人はいますか?

4

1 に答える 1

2

Slim ミドルウェアはすべて public メソッド call() を実装しているため、この方法で目的のルートに追加することができます。そのためには、ミドルウェアとして使用せずに、ミドルウェア ($auth) のインスタンスを取得する必要があります。

$app->get('/yourSecuredRoute', array($auth,'call'), function() use($app){
        $app->render('index.html');
});

機能するかどうかは不明です。機能する場合でも、トリッキーであり、独自のルートレベルのミドルウェアを作成するなどのより良い方法があるはずです。

于 2013-10-17T10:59:24.220 に答える