我正在构建Node-Express微服务,以便我的Facebook应用可以访问其他用户页面并代表他们发布信息。我需要使用我的通行证js和passport-facebook的accessToken和pageAccessToken 策略。
我正在使用passport-facebook github页面中提供的默认演示入门代码。我不知道done或cb的工作原理以及从何处获取User模型。
const express = require('express');
const passport = require('passport')
const FacebookStrategy = require('passport-facebook').Strategy;
const router = express.Router();
const moment = require('moment');
const axios = require('axios');
const {parse, stringify} = require('flatted/cjs');
const config = require('../config/config');
const constant = require('../config/constants');
passport.use(new FacebookStrategy({
clientID: config.FACEBOOK_ID,
clientSecret: config.FACEBOOK_SECRET,
callbackURL: "http://localhost:5000/facebook/login/status",
profileFields: ['id', 'displayName', 'link', 'email']
},
(accessToken, refreshToken, profile, done) => {
User.findOrCreate({ facebookId: profile.id }, (err, user) => {
if (err) { return done(err); }
done(null, user);
});
}));
router.get('/login',
passport.authenticate('facebook', {
scope: ['publish_pages', 'manage_pages', 'pages_show_list']
})
)
router.get('/login/status', passport.authenticate('facebook',
(err, user, info) => console.log(`user: ${user}`)
), (req,res) => {
res.send(req.body);
})
module.exports = router;
github代码:https://github.com/harshdeepkanhai/facebook_access_token 登录回调URL后,需要将accessToken作为对象。