Я использую Passport.js для проверки подлинности linkedin и работает довольно хорошо.Теперь я хочу сохранить cookie, если пользователь уже существует в базе данных.
На моем веб-сайте я использовал googlee, linkedin, github authenticndicattion.
В аутентификации google я использовал ту же логику, если пользовательуже существует, я хочу сохранить куки.Для этого Мой код
router.get(
'/auth/google/callback',
passportGoogle.authenticate('google', {
failureRedirect: '/login',
}),
(req, res) => {
const nameFirst = req.user.profile._json.displayName;
const email = req.user.profile.emails[0].value;
const id = req.user.profile.id;
const user = new User({
user_token: id,
name: nameFirst,
email: email,
provider: 'Google',
dateSent: Date.now(),
});
User.find({ email: email }, (err, docs) => {
if (docs.length) {
req.session.token = req.user.token;
res.redirect('/dashboard');
} else {
user
.save()
.then(user => {
res.redirect('/');
})
.catch(err => {
console.log(err);
});
}
});
}
);
В Google Autho все работает нормально, но для входа в систему с помощью google или github я не могу сохранить cookie, а также не отображается ошибка или исключение.Я устал, но я не могу исправить эти ошибки.Пожалуйста, помогите мне решить эту проблему. Спасибо заранее
За Linkedin
router.get(
'/auth/linkedin/callback',
passportLinkedIn.authenticate('linkedin', { failureRedirect: '/' }),
(req, res) => {
const nameFirst = req.user.profile._json.firstName;
const email = req.user.profile._json.emailAddress;
const id = req.user.profile.id;
const user = new User({
user_token: id,
name: nameFirst,
email: email,
provider: 'linkedIn',
dateSent: Date.now(),
});
User.find({ email: email }, (err, docs) => {
if (docs.length) {
console.log('coo');
console.log(req.user.accessToken);
req.session.token = req.accessToken;
res.redirect('/dashboard');
} else {
user
.save()
.then(user => {
res.redirect('/');
})
.catch(err => {
console.log(err);
});
}
});
}
);
Я сохранил cookie в этой строке req.session.token = req.accessToken;