Node.js Passport Facebook在localhost中工作,但在Heroku(MERN Stack)中不工作

Node.js Passport Facebook在localhost中工作,但在Heroku(MERN Stack)中不工作,node.js,reactjs,authentication,passport.js,passport-facebook,Node.js,Reactjs,Authentication,Passport.js,Passport Facebook,我正在用Facebook登录制作一个简单的应用程序。它在localhost中工作得非常好。但是,部署到Heroku后,登录按钮只刷新页面,浏览器保持在https://voting-app-28.herokuapp.com/auth/facebook无需重定向。我已经尝试了所有方法,并在facebook上将URL添加到了有效的OAuth重定向URI中。控制台中没有错误 我的护照 passport.serializeUser((user, done) => { done(null, use

我正在用Facebook登录制作一个简单的应用程序。它在localhost中工作得非常好。但是,部署到Heroku后,登录按钮只刷新页面,浏览器保持在
https://voting-app-28.herokuapp.com/auth/facebook
无需重定向。我已经尝试了所有方法,并在facebook上将URL添加到了有效的OAuth重定向URI中。控制台中没有错误

我的护照

passport.serializeUser((user, done) => {
  done(null, user.id);
});

passport.deserializeUser((id, done) => {
  User.findById(id).then(user => done(null, user));
});

passport.use(
  new FacebookStrategy(
    {
      clientID: keys.facebookClientID,
      clientSecret: keys.facebookClientSecret,
      callbackURL: '/auth/facebook/callback',
      profileFields: ['id', 'name'],
      proxy: true
    },
    (accessToken, refreshToken, profile, done) => {
      User.findOne({ facebookId: profile.id }).then(user => {
        if (user) {
          return done(null, user);
        } else {
          new User({ facebookId: profile.id })
            .save()
            .then(user => done(null, user));
        }
      });
    }
  )
);
my authRoutes.js

  app.get('/auth/facebook', passport.authenticate('facebook'));

  app.get(
    '/auth/facebook/callback',
    passport.authenticate('facebook'),
    (req, res) => {
      res.redirect('/');
    }
  );
这是我的和,所以你可以明白我的意思


请帮忙,谢谢你

我也有同样的问题。在多次谷歌搜索之后,我发现Facebook只允许来自HTTPS的请求。即使我的Heroku域是HTTPS,它也没有ssl证书。我升级到hobby dyno,并在Heroku上的设置中应用了ssl证书,现在可以工作了