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', ...

我必须使用名为 strategy的facebook-loginauthenticate定义第二个回调和调用方法

于 2015-01-09T09:17:30.877 回答