My NodeJS-приложение поддерживает Google OAuth2 через passport-google-oauth20, а также предоставляет несколько внешних интерфейсов на основе URL-адреса, к которому он обращается.Есть ли способ, которым я могу иметь различные redirectURL?
Это начальный код:
passport.use(new GoogleStrategy({
clientID: 'clientid.apps.googleusercontent.com',
clientSecret: 'somesecret',
callbackURL: 'http://localhost:8000/auth/google/callback',
},
(accessToken, refreshToken, profile, done) => {
done(null, profile); // passes the profile data to serializeUser
}
));
Тогда конечная точка для аутентификации Google:
app.get('/auth/google', passport.authenticate('google', {
scope: 'openid profile email',
responseType: 'code',
}));
Это работаетхорошо для одного сайта, но так как мне нужно иметь возможность поддерживать несколько внешних интерфейсов, я пытаюсь:
app.get('/auth/google', passport.authenticate('google', {
scope: 'openid profile email',
responseType: 'code',
successRedirect: 'http://localhost:8000/auth/google/callback2'
}));
К сожалению, это не работает.Я попытался удалить callbackURL из конструктора GoogleStrategy, но это приводит к сбою формы «Отсутствует обязательный параметр: redirect_uri» при вызове passport.authenticate()
.
Это то, что я пытаюсь сделатьвозможно и если да, то как?Если нет, могут быть оценены альтернативные подходы.