节点/ Angular / Passport / Satellizer基于令牌的Facebook身份validation不返回令牌

我正在使用Angular上的Satellizer和一个使用Passport.js进行身份validation的Node后端。 我已经根据Satellizer文档实现了loginstream程,并且能够通过Passport / Node服务器将令牌返回给浏览器。 但是,当我返回令牌时,它会返回到popup窗口,而不是Angular应用程序本身。 因此,在popup窗口自closures之后,我在angular度应用程序中收到此错误:

Expecting a token named "token 

这是我的护照路线:

 app.post('/login/facebook', passport.authenticate('facebook-login', { 'scope': ['email'] })) app.get('/login/facebook-callback', passport.authenticate('facebook-login'), function(req, res) { tokenHelper.createSendToken(req.user, res); }) 

这是我的Passport Facebook战略:

 var facebookLoginStrategy = new FacebookStrategy({ clientID: process.env.FACEBOOK_APP_ID, clientSecret: process.env.FACEBOOK_APP_SECRET, callbackURL: "http://localhost:8080/login/facebook-callback", passReqToCallback: true, profileFields: ['email'] }, function(req, accessToken, refreshToken, profile, done) { if (!req.user) { User.findOne({ "facebookData.id": profile.id }, function(err, user) { if (err) return done(err); if (user) { // Authenticate console.log('found user') return done(null, user); } else { // Register console.log('making new user') var newUser = new User(); newUser.facebookData = profile newUser.email = profile.emails[0].value newUser.username = profile.emails[0].value console.log(newUser) newUser.save(function(err) { if (err) throw err; return done(null, newUser); }); } }); } else { // Authorize console.log('updating user') var user = req.user user.facebookData = profile; user.save(function(err) { if (err) throw err; return done(null, user); }); } }) passport.use('facebook-login', facebookLoginStrategy) 

即使我使用了令牌,我也安装了护照会话,但仍将令牌返回到错误的地方。 我怎样才能使得卫星通过popup窗口中所收到的令牌向angular应用转发? 还是我需要修改我的身份validationstream程以适应这些框架? 谢谢你的帮助!

       

网上收集的解决方案 "节点/ Angular / Passport / Satellizer基于令牌的Facebook身份validation不返回令牌"