Как получить доступ к данным, отправленным через следующий параметр в express middleware - PullRequest
0 голосов
/ 13 марта 2020

Я использую сервер express и столкнулся с проблемой промежуточного программного обеспечения с паспортной аутентификацией, которая выглядит примерно так

passport.use('google', new GoogleStratergy({
    clientID:     "",
    clientSecret: "",
    callbackURL: "/Users/auth/google/callback",
    passReqToCallback   : true
}, (request, accessToken, refreshToken, profile, done) => {
    Users.findOne({ UserID: profile.id }, function (err, user) {
        if (err){
            return done(err);
        }
        if (!user){
            var User = new Users({});
            User.setPassword(Math.random().toString(36).substring(5));

            var jwt = User.generateJWT();

            User.save()
                .then(() => {
                    return done(null, User, jwt);
                })
                .catch(err => {
                    return done(err);
                })
        }
        else {
            var jwt = user.generateJWT();
            return done(null, user, jwt);
        }
    });
  }
));

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

router.get('/something', passport.authenticate('google'), (req, res, next) => {
    // Now I need to access User and jwt object here passed with done()
    res.send("whatever");
})

1 Ответ

0 голосов
/ 13 марта 2020

Вы проверили объект req? сделай это

router.get('/something', passport.authenticate('google'), (req, res, next) => {
    console.log(req.user)
    console.log(req.jwt)
    // Now I need to access User and jwt object here passed with done()
    res.send("whatever");
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...