googleapis oauth2.0 паспорт для регистрации пользователя — приложение nodejs Express

#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');
    });
    
})