#node.js #express #oauth-2.0 #passport.js
#node.js #экспресс #oauth-2.0 #passport.js
Вопрос:
Я использую googleapis
oauth2.0 для регистрации пользователя на моем веб-сайте через OAuth2.0
. Я добираюсь до того момента, когда получаю токен доступа и идентификатор токена и сохраняю нового пользователя в своей базе данных, с этого момента я хочу создать сеанс пользователя, и я пытаюсь использовать passport
для этого, но passport
мне нужна одна из его стратегий для реализации, которая мне на данный момент не нужна, потому что у меня уже есть подтвержденный адрес электронной почты пользователя и все остальное, и я сохранил пользователя в своей базе данных, все, что мне теперь нужно сделать, это создать сеанс пользователя и отправить пользователя на домашнюю страницу, но, похоже, есть чтобы не было возможности просто создать пользовательский сеанс без стратегии в passport
.
вот моя функция перенаправления oauth2.0, где я получаю токен доступа и т.д.
router.get('/oauth-redirect', function (req, res, next) = > {
const data = await googleAuth.getToken(req.code);
const user = getUserInfoFrom(data);
const savedUser = save(user);
//here: use passport to create a session and send the user to home page ????
})
Ответ №1:
нашел способ сделать это, есть функция req.login(), предоставляемая passport, которую вы можете использовать для ручной регистрации пользователя.
router.get('/oauth-redirect', function (req, res, next) = > {
const data = await googleAuth.getToken(req.code);
const user = getUserInfoFrom(data);
const savedUser = save(user);
//this below is what will create a session and will set connect.sid cookie
req.login(savedUser, function(err) {
if (err) {
console.log(err);
}
return res.redirect('/home');
});
})