我正在尝试使用passportjs使用Facebook服务登录。在线有很多示例,但是没有一个真正明确说明实现的情况,没有持续的会话,因为我计划使用JWT来识别我的用户。
我已经自己尝试了这一点,但是我不断获得错误响应Cannot GET /auth/facebook/callback
。请参阅下面的实现。
路由文件
router.get('/facebook', passport.authenticate('facebook',{ scope : ['email'] }));
router.get('/facebook/callback',
passport.authenticate('facebook', {
session: false
}));
passportjs
passport.use(new FacebookStrategy({
clientID: config.facebookAppId,
clientSecret: config.facebookAppSecret,
callbackURL: config.facebookCallbackURL,
profileFields: ['email']
},
function(accessToken, refreshToken, profile, done) {
//find the user based off of the facebook profile id
User.findOne({oauthID: profile.id}).exec()
//find the user or create a new record
.then(function(user){
if(user) return done(null, user);
var user = new User({
oauthID: profile.id,
oauthProvider: 'facebook',
email: profile.emails[0].value,
name: profile.displayName
});
user.save();
})
//send back error if encountered
.catch(done);
}
));
请检查您的API路径。就我而言,我使用http://127.0.0.0.1:3001/api/auth/facebook/callback的API路径,该路径用于Postman及其工作及其工作,但是当我尝试从ReactJS形式尝试时,我使用http:///127.0。0.1:3001/auth/facebook/callback,所以我遇到此错误无法获得/auth/facebook/callback。当我从此路径修复此路径时
我希望它对您有用。谢谢