2016-08-07 15 views
0

私はpassportJSに新しいですし、このコードを理解したい:passportjsカスタムコールバックコードフロー

app.get('/login', function(req, res, next) { 
    passport.authenticate('local', function(err, user, info) { 
    if (err) { return next(err); } 
    if (!user) { return res.redirect('/login'); } 
    req.logIn(user, function(err) { 
     if (err) { return next(err); } 
     return res.redirect('/users/' + user.username); 
    }); 
    })(req, res, next); 
}); 

は、誰かが私には、このコードの流れを説明できますか?どのような(req, res, next); passport.authenticate関数の最後に行うのですか?

私はすでにthisの質問を読んでいますが、それでもそれは得られません。

+0

これは、「ログイン」のルーティングを処理し、ローカルレベルで認証しようとします。エラーが発生した場合は、ユーザーが認証されていない場合はログインします。 '\ users'ルート/ページにリダイレクトされます。 '(req、res、next)'は実際には関数の引数に渡す値です。 –

+0

"(req、res、next)は実際には関数の引数に渡す値です。" 申し訳ありませんが、どういう意味ですか? – Kim

+0

だから(req、res、next);ログインコールバックが含まれていますか? 正しい場合は、passport.authenticate関数に関連する(req、res、next)の機能は何ですか? – Kim

答えて

0
passport.authenticate()(<args>); 

passport.authenticate()三つの引数(reqresnext)を有することができる機能を返します。あなたは求めているコード/引数はしかし、私はパスポートが文字列localで行うんかについて非常に明確ではありませんよauthenticate.js code on GitHub

チェックpassport.authenticate()によって返される関数に渡され、これらの引数です。私が知りたいのです:パスポートは 認証メカニズムを適用するかを理解するために

  1. は十分local文字列を渡していますか?
  2. local戦略の使用に遭遇した後、パスポートは何を行いますか?
+0

パスポート戦略を定義する際に、 passport.use( 'strategyname'、新しいStrategyClass());私たちは戦略の名前を宣言します。この名前は後でpassport.authenticate( 'strategyName'、..);で使用されます。 – DevdattaK

関連する問題