googleapis oauth2.0 +用户注册护照-Node.js Express应用程序

问题描述

我正在通过googleapis使用OAuth2.0 oauth2.0在我的网站上进行用户注册。我到达获取访问令牌和ID令牌并将新用户保存在数据库中的地步,从那时起,我想创建一个用户会话,并且尝试使用passport,但是{{ 1}}需要执行其中一种策略,这是我现在不需要的策略,因为我已经验证了用户电子邮件和所有内容,并将用户保存在数据库中,现在我要做的就是创建用户会话并发送用户进入主页,但是似乎没有办法passport中没有策略就创建用户会话。

这是我的oauth2.0重定向函数,可在其中获取访问令牌等。

passport

解决方法

找到了实现的方法,护照显示了req.login()函数,您可以使用该函数手动登录用户。

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