小编Max*_*ogg的帖子

Passportjs Facebook登录流程(passport-facebook vs passport-token)

使用Node,Express和Passport.

好的,我和我的团队正在为双面市场类型的应用程序构建REST API.我们已经为电子邮件和密码登录设置了基本的LocalStrategy.

我们希望API用户代理不可知,因此我们可以通过Web,Android或iOS使用API​​.

但是我们感到困惑的是FB登录流程.问题是,在Passportjs的幕后究竟发生了什么.我们已经研究了'passport-facebook'和'passport-facebook-token'策略,并且无法真正决定使用哪种策略.

这是我目前对流程的理解:

护照令牌

护照的Facebook

如果这是正确的,我最好让客户端从FB获取access_token然后发送给我,或者让FB通过重定向和回调URL处理它?

护照令牌:

passport.use('facebook-token', new FacebookTokenStrategy( {
    clientID: 'xxx',
    clientSecret: 'xxx'
}, function(accessToken, refreshToken, profile, done) {
    // asynchronous
    //console.log("into passport auth");
    process.nextTick(function() {
        User.findOne({'facebook.id': profile.id}, function(error, user) {
            console.log("user is " + JSON.stringify(user));
            console.log("profile is " + JSON.stringify(profile));

            //do user creation stuff etc.

            return done(error, user);
        });
    });
}));

authRouter.post('/facebook', passport.authenticate('facebook-token'), function (req, res) {
    console.log("into controller");
    if (req.user){
        //log the user in since they successfully authenticated with facebook.
        req.login(user);
        res.status(200).end();
    } else { …
Run Code Online (Sandbox Code Playgroud)

facebook node.js passport.js

16
推荐指数
2
解决办法
4850
查看次数

标签 统计

facebook ×1

node.js ×1

passport.js ×1