Паспорт и разные обратные звонки? - PullRequest
0 голосов
/ 23 мая 2019

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().

Это то, что я пытаюсь сделатьвозможно и если да, то как?Если нет, могут быть оценены альтернативные подходы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...