0

パスポートを使用してOAuth認証システムを構築しているnode.jsアプリを開発しています。構成後、各リソースロードのリクエストオブジェクトを介してユーザーにアクセスできます。しかし、私の質問は次のとおりです。すべてのURLが読み込まれる前にチェックするにはどうすればよいですか-app.get('/'、function(..){...})で定義されたリソース-ユーザーがログに記録されているかどうか、そうでない場合はクライアントをリダイレクトしますログに記録されました。すべてのメソッドにテストを追加するだけで実行できますが、これは私が望んでいることではありません。

ありがとう!

4

1 に答える 1

2

ユーザーがログインしているかどうかをチェックするミドルウェアが必要です。

isAuthenticated = function (req, res, next) {
  if (req.user)
    return next(); // All good, let the route handler process the request.
  else
    res.redirect('/login'); // Not logged in.
}

そして、ログインする必要があるすべてのルートでそれを使用するには:

app.get('/something', isAuthenticated, function (req, res) {
  // Only in here if the user is authenticated.
});

を実行することで、すべてのルートでミドルウェアを使用することもできますが、などapp.use(isAuthenticated)への無限のリダイレクトループを作成しないように、メソッドに追加のロジックが必要になります。/login

于 2012-08-12T23:31:35.223 に答える