提问者:小点点

OAuth2-错误400:redirect_uri_mismatch与Passport,重定向URL与设置的URL不同


------------------------------------
users.js路由文件:

...
const GoogleStrategy = require('passport-google-oauth20').Strategy
...

passport.use(new GoogleStrategy(
    {
        clientID: process.env.GOOGLE_CLIENT_ID,
        clientSecret: process.env.GOOGLE_CLIENT_SECRET,
        callbackURL: 'users/auth/google/callback'
    }, accessToken => {
        console.log(accessToken);
    }
    )
)
...
router.get('/auth/google', passport.authenticate('google', {scope: ['profile', 'email']}))
...

在Google developers控制台中,我将授权重定向URI设置为:

http://localhost:3000/users/auth/google/callback我的客户端ID和机密正确。

在错误消息中,我可以看到重定向URI是:http://localhost:3000/auth/users/auth/google/callback

Url路径的开头有一个额外的auth,这很奇怪,因为我还没有设置它。我怎么才能把它去掉呢?我能把它取下来吗?


共1个答案

匿名用户

首先,您创建了一个指向“users/auth/google/callback”的回调url,因此您必须创建它:

router.get('users/auth/google/callback', 
  passport.authenticate('google', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect home.
    res.redirect('/');
  });