Я пытаюсь передать req & res через функцию обратного вызова, чтобы проверить ip пользователя, используя requestIp, чтобы предотвратить многоуровневый учет, любая помощь будет очень признательна. (req.clientIp возвращает ip пользователя)
фрагмент файла users.js:
router.get('/google', passport.authenticate('google', {
scope: ['profile', 'email']
}));
router.get('/google/callback', (req, res) => {
passport.authenticate('google', {
failureRedirect: '/users/register'
}), (req, res) => {
res.redirect('/dashboard');
};
});
фрагмент файла passport.js:
passport.use(new GoogleStrategy({
clientID: keys.googleClientId,
clientSecret: keys.googleClientSecret,
callbackURL: '/users/google/callback',
proxy: true
}, (accessToken, refreshToken, profile, done) => {
console.log(accessToken, profile);
// const image = profile.photos[0].value;
const email = profile.emails[0].value;
var google = {
googleID: profile.id,
firstName: profile.name.givenName,
lastName: profile.name.familyName,
image: profile.photos[0].value
}
console.log(google);
User.findOne({
email: email
}).then(user => {
if (user) {
user.google = google
user.save().then(() => {
done(null, user);
});
} else {
console.log('no user');
new User({
email: email,
username: `${google.firstName} ${google.lastName}`,
google: google
}).save().then(user => {
done(null, user);
});
};
});
}));
Редактировать: я хочу получить доступ к req & res в файле passport.js. Кроме этого все работает
Если вам нужна дополнительная информация, я предоставлю ее, спасибо.