Google 身份验证正在重定向到我网站的 http 版本

问题描述 投票:0回答:1

我正在我的blog应用程序上实现谷歌身份验证,该应用程序是在react上。

我点击 这个 URL 来调用 google 身份验证,我的回调 URL 是

/api/auth/google/callback

但是,我遇到了两个问题。

  1. 我收到重定向不匹配错误,其中redirect_URI 显示为 http://www.blog.frusteratedprogrammer.in/ 而不是 https://blog.frusteratedprogrammer.in/

但是,我已经在我的环境变量中配置了 https 版本。

  1. 有时,我会收到
    Missing required parameter: scope
    错误。

我将提供我的 Passport.js 实现以及我的 API 路由,请查看此内容并询问所需的任何其他信息。

//passport.js file
passport.use(
  new Google(
    {
      clientID: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOGLE_CLIENT_SECRET,
      callbackURL: "/api/auth/google/callback",
    },
    function (accessToken, refreshToken, profile, done) {
      UserModel.findOne({ googleId: profile.id }, function (err, user) {
        if (err) return done(err);
       // my server side logic
    }
  )
);
router.get(
  "/google",
  passport.authenticate("google", { scope: ["profile", "email"] })
);

router.get(
  "/google/callback",
  passport.authenticate("google", { failureRedirect: "/auth/login/failed" }),
  function (req, res) {
    // Successful authentication, redirect home.
    const { password, ...other } = req.user._doc;
    req.session.user = other; // Store user details in session
    res.redirect(process.env.CLIENT_ORIGIN);
  }
);

我的客户端来源是 CLIENT_ORIGIN=https://www.frusteratedprogrammer.in/,这在我的本地主机上运行得很好。当我在产品上使用它时,只会出现问题。

我已经尝试对 auth 回调进行硬编码,如本 stackoverflow 解决方案中所述,但它又产生了一些问题。

oauth-2.0 oauth google-oauth passport.js passport-google-oauth
1个回答
0
投票

重定向 URI 不匹配的问题(http://www.blog.frusteratedprogrammer.in/ 而不是 https://blog.frusteratedprogrammer.in/)可能是由于您的服务器配置方式或您的操作方式造成的正在处理 HTTPS。确保您的服务器已正确配置为处理 HTTPS 请求和重定向。

检查 Express 服务器前面是否存在可能导致 URL 更改的代理服务器。

© www.soinside.com 2019 - 2024. All rights reserved.