1

2 つの異なる「passport-facebook」戦略を使用したいと考えています。ログイン用に 1 つ、ログインしているユーザーの接続用に 1 つ。

明らかに、私はそれらを次のような異なる名前で登録します

facebook    = require('passport-facebook'); ...
passport.use('facebook-login', new facebook.strategy(o, login));
passport.use('facebook-connect', new facebook.strategy(o, connect));

ただしpasssport.authenticate('facebook-login',{...})(req, res, next)、ルートメソッドから呼び出すと、のconnect代わりに実行されますlogin

私は何か間違ったことをしていますか?

4

1 に答える 1

1

根本的な原因を見つけました。名前付き戦略が oauth コールバック中にも実行されることに気づきませんでした。そして、次のように定義されたコールバックが 1 つだけありました。

function fbCallback(req, res, next){
   passport.authenticate('facebook-connect', ...

2 番目のコールバックを定義し、 facebook-loginという名前の戦略authenticateでメソッドを呼び出す必要がありました

于 2015-01-09T09:17:30.877 に答える