Объект req.user не сохраняется на перенаправлениях, когда сеансы не используются - PullRequest
0 голосов
/ 18 апреля 2019

Я использую паспорт google-oauth-20 без сессий.

У меня есть функция обратного вызова, которая создает пользователя, если он не существует, и возвращает профиль.Затем у меня есть промежуточное ПО, которое проверяет, является ли пользователь новичком, чтобы он перенаправлял на маршрут /onboarding, а пользователя перенаправляют на /feed, если он уже находится в БД.

Вот логика:

passport.use(new GoogleStrategy({
    clientID: process.env.GOOGLE_CLIENT_ID,
    clientSecret: process.env.GOOGLE_SECRET,
    callbackURL: process.env.GOOGLE_CALLBACK,
    },
    strategyCallback
));


const authenticate = passport.authenticate('google', {
    scope: ['profile', 'email']
});

const authenticateCallback = passport.authenticate('google', {
    session: false
});

const redirectUser = (req, res) => {
    if (req.user.isNewRecord) {
        res.redirect(302, '/onboarding')
    } else {
        console.log(req.user)
        res.redirect(302, '/feed')
    }
}

В моих маршрутах у меня есть следующее:

app.get('/auth/google', controllers.googleAuth.authenticate);
app.get('/auth/google/callback',
    controllers.googleAuth.authenticateCallback,
    controllers.googleAuth.redirectUser    
);

app.get('/feed', (req, res) => {
    console.log(req.user) // <---- UNDEFINED
    res.send('welcome back!')
});

Объект req.user теряется при перенаправлении, он не сохраняется.Есть ли способ вернуть объект пользователя обратно?

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