NodeJS TokenError:使用google passport时在Strategy.OAuth2Strategy上的错误请求

wlp8pajw  于 2023-06-22  发布在  Node.js
关注(0)|答案(1)|浏览(94)

我一直得到这个错误在我的控制台时,试图使用护照身份验证与谷歌

TokenError: Bad Request
    at Strategy.OAuth2Strategy

这是我的路线

passport.use(
  new GoogleStrategy(
    {
      clientID: '58730156701-.apps.googleusercontent.com',
      clientSecret: 'tYjrSiieNi2l',
      callbackURL: 'http://localhost:8080/auth/google/callback'
    },
    async (accessToken, refreshToken, profile, done) => {
    
    }
  )
);

router.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }));
router.get(
  '/auth/google/callback',
  passport.authenticate('google', { failureRedirect: '/login' }),
  async (req, res) => {
    try {
      const token = jwt.sign({ userId: req.user._id }, 'YOUR_SECRET_KEY', { expiresIn: '1h' });
      res.json({ token });
    } catch (err) {
    }
  }
);

我的调用backurl正在使用我的前端本地主机,请为什么我不断得到这个错误

lrpiutwd

lrpiutwd1#

我认为googleStrategy可能有问题。请尝试保存并将user返回到回调函数。您可以使用help findOrCreate包来完成此操作。检查文档中有关Google策略和身份验证设置的信息passport-google-oauth

passport.use(
  new GoogleStrategy(
    {
      clientID: '58730156701-.apps.googleusercontent.com',
      clientSecret: 'tYjrSiieNi2l',
      callbackURL: 'http://localhost:8080/auth/google/callback'
    },
    async (accessToken, refreshToken, profile, done) => {
        //find the user if DB if not present then save the usernameField
        User.findOrCreate({ googleId: profile.id }, function (err, user) {
            return done(err, user);
        });
    }
  )
);

相关问题