OAuth路由页面需要硬刷新

时间:2019-06-13 07:49:09

标签: reactjs heroku oauth passport.js

我正在开发一个在MERN Stack中构建的项目,并且正在使用护照进行身份验证。我最近在我的heroku应用程序和新部署的应用程序上添加了SSL证书,如果我尝试使用Google OAuth登录,则该页面将变为空白,并且需要执行ctrl + F5(硬刷新)以显示Google登录页面。回调URL也是如此。控制台中没有错误输出。您有什么建议或想法,可能是什么问题?

问题仅与https版本有关,而与我的localhost或http版本无关,因此似乎该问题特定于使用https

这是我在config / passport.js中的代码

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

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

passport.use(
  new GoogleStrategy(
    {
      clientID: keys.googleClientID,
      clientSecret: keys.googleClientSecret,
      callbackURL: "/auth/google/callback",
      proxy: true
    },
    (accessToken, refreshToken, profile, done) => {
      console.log("got to authenticate for google");
      User.findOne({ googleId: profile.id }).then(existingUser => {
        if (existingUser) {
          console.log("exists");
          done(null, existingUser);
        } else {
          new User({
            username: profile.displayName,
            firstName: profile.name.givenName,
            lastName: profile.name.familyName,
            email: profile.emails[0].value,
            googleId: profile.id
          })
            .save()
            .then(user => done(null, user));
        }
      });
    }
  )
);

这是我在authRoute.js中的代码

app.get(
        '/auth/google/',
        passport.authenticate(
            'google',
            { scope: ['profile', 'email'] }
        )
    );
    //passport middleware takes over at callback URL,
    //then redirect the route to '/surveys'
    app.get(
        '/auth/google/callback/',
        passport.authenticate('google'),
        (req, res) => {
            res.redirect('/forum');
        }
    );

0 个答案:

没有答案