2017-06-11 6 views

答えて

0

すべてのルートより前にミドルウェアが実行されています。だから、あなたはおそらくこのようなルートを持っているでしょう:

$routes->match('/login', function() use ($app) { 
    // Login etc. 
}); 

あなたは、POSTのGETや何でも使っています。ミドルウェアは、ルートが実行される前に常に実行されます。したがって、すべてのルートで動作するので、ミドルウェアはログイン前に適用されます。

あなたは、このようなログインルートの後にミドルウェアを実行することによってそれを修正できます。この上

$routes->match('/login', function() use ($app) { 
    // Login etc. 
}) 
->after($after); 

詳細はhereを見つけることができます!

ミドルウェアを変更して、ユーザーが既にログインしているかどうかを最初に確認することもできます。そうであれば、認証を実行し、そうでなければ何もしない。

$app->before(function($request, $app) { 
    if user is logged in { 
     Auth::authenticate($request, $app); 
    } 
}); 

私はこれがあなたを助けてくれることを願っています。あなたが仕事をしているときに完了したと印を付けることを忘れないでください。それ以外の場合は、コメントを残すか質問を編集してください。

+0

あなたの最後の例は、私がいつもそれをやったことです。 – Maerlyn

+0

最後の例は、ログインしていないと認証されないことを意味します。どちらの場合も認証したいのですが、ログインルートが起動し、認証ヘッダーとトークンが必要なときに問題が発生します。ログインルートを除外するために、私は自分自身を繰り返してすべてのルートに対して手動でやりたいとは思わないが、私の問題はログインルートだ –

関連する問題