Требуется пустое место при использовании паспорта GoogleStrategy - PullRequest
0 голосов
/ 14 октября 2019

У меня есть форма регистрации, где я собираю дополнительную информацию от пользователя, такую ​​как страна, город, пол ... В конце формы пользователь может выбрать, будет ли он подписываться по электронной почте / паролю, в Google или Facebook. При подписке по электронной почте / паролю мой req.body содержит все дополнительные поля ввода.

passport.use('local-signup', new LocalStrategy({
    usernameField : 'email',
    passwordField : 'password',
    passReqToCallback : true
},
function(req, email, password, done) {

    // Here req.body contains all my input fields

Однако при использовании facebookStrategy или googleStrategy мой объект req.body пуст. Это из-за обратного вызова в Google или Facebook, что содержимое моего объекта req.body потеряно?

passport.use(new GoogleStrategy({
    clientID        : configAuth.googleAuth.clientID,
    clientSecret    : configAuth.googleAuth.clientSecret,
    callbackURL     : configAuth.googleAuth.callbackURL,
    passReqToCallback : true
},
function(req, token, refreshToken, profile, done) {

    // Here my req.body is an empty object {}

Мой обратный вызов и аутентификация Google

// Google authentication and login
app.get('/auth/google', passport.authenticate('google', { 
    scope : ['profile', 'email'] 
}));

// Google - Callback after Google has authenticated the user
app.get('/auth/google/callback', passport.authenticate('google', {
    successRedirect : '/users',
    failureRedirect : '/login',
    failureFlash : true     
}));

Сейчас я решаюэто путем сохранения полей ввода в локальном хранилище браузера, но это не может быть правильным решением.

...