Требуется полное обновление для страницы маршрута OAuth - PullRequest
0 голосов
/ 13 июня 2019

Я работаю над проектом, встроенным в стек MERN, и использую паспорт для аутентификации.Недавно я добавил сертификат SSL в свое приложение heroku и в мое новое развернутое приложение. Если я пытаюсь войти в систему с помощью Google OAuth, страница становится пустой, и мне нужно выполнить Ctrl + F5 (полное обновление), чтобы отобразить страницу входа в Google.,То же самое касается URL обратного вызова.В консоли нет сообщений об ошибках.Есть ли у вас какие-либо предложения или идеи, в чем может быть проблема?

Проблема только с версией https, а не на моем локальном или 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');
        }
    );
...