如何使用护照

时间:2018-06-08 19:13:03

标签: oauth callback routes facebook-login

到目前为止,我已经在数据库中使用硬编码数据实现了 facebook登录,现在我也希望实现注册。如何在不需要重复大量代码的情况下在下面的场景中实现它?

请帮帮我。我还需要一个新的路径,并使用相同的网址进行注册吗? 我将如何处理例如 user.FBSignup 控制器?如何用FacebookTokenStrategy实现它?

 /**************** FACEBOOK LOGIN ***********************/

    passport.use(new FacebookTokenStrategy({
        clientID: '562353024149441', //FACEBOOK_APP_ID
        clientSecret: '8b3d5b9923bda272239d3304f1b923ce', //FACEBOOK_APP_SECRET
        callbackURL: "http://localhost:3443/auth/facebook/callback",
        profileFields: ['id', 'displayName', 'photos', 'email']
    }, function (accessToken, refreshToken, profile, done) {
        console.log(profile.photos[0].value)
        user.FBLogin(profile.id, function (err, user) {
            return done(err, user);
        });
    }));

    app.post('/auth/facebook/token', passport.authenticate('facebook-token', {
        session: false
    }), (req, res) => {
        console.log(req.user)
        let token;
        try {
            token = jwt.sign({
                user: req.user,
            }, "supersecret")
            res.header('token', token)
        } catch (e) {
            return res.json({
                status: "error"
            })
            log('e', 'app.get(/auth/facebook/token - e - 230 : ' + e)
        }
        return res.send(req.user)
    });

1 个答案:

答案 0 :(得分:0)

我不确定您是否希望使用https://github.com/jaredhanson/passport-facebook,or使用https://github.com/drudge/passport-facebook-token令牌方法进行服务器端登录,根据您的代码,我建议观看此YouTube视频https://www.youtube.com/watch?v=zx6jnaLuB9Q&list=PLSpJkDDmpFZ7GowbJE-mvX09zY9zfYatI