Узел паспорт JS Google OAuth не работает на HTTPS? - PullRequest
0 голосов
/ 15 октября 2018

Я очень расстроен этой ошибкой.Вот приложение, которое я развернул на heroku https://emm -samrat.herokuapp.com .Если вы нажмете на кнопку входа, он покажет пустую страницу.Но если вы измените https на http, все будет работать как положено.Можете ли вы сказать мне, что происходит?

Вот мой код passport.js

    passport.use(
      new GoogleStrategy(
        {
          clientID: keys.googleClientId,
          clientSecret: keys.googleClientSecret,
          //this is for production
          callbackURL: "/auth/google/callback",
          proxy: true
        },
        async (req, accessToken, refreshToken, profile, done) => {
          done(null, profile);
        }
      )
    );

  app.get(
    "/auth/google",
    passport.authenticate("google", {
      prompt: "select_account",
      session: false,
      scope: ["openid", "profile", "email"]
    })
  );

  app.get(
    "/auth/google/callback",
    passport.authenticate("google", { session: false }),
    async (req, res) => {
      const user = await User.findOne({ authId: req.user.id });

      //Stores the User Google Profile ID in session
      req.session.authId = req.user.id;
      if (user) {
        res.redirect("/");
      }
      //If the user is visiting for the first time,
      //he/she should fill the additional form
      res.redirect("/signup");
    }
  );

РЕДАКТИРОВАТЬ: Если ваше приложение использует React.Обязательно удалите import registerServiceWorker from './registerServiceWorker' на index.js и удалите весь кеш браузера.И все будет работать как положено.

1 Ответ

0 голосов
/ 16 октября 2018

Вам нужно будет получить сертификат SSL, есть несколько бесплатных

...