[英]Directly authenticate(login) after successful signup in Node.js
注册后如何直接验证用户身份。 下面是serializeUser和deserializeUser的详细信息。
passport.serializeUser(function(user, done) {
done(null, {tutorId: user.tutorId, userType: user.userType});
});
passport.deserializeUser(function(userData, done) {
Tutor.getTutorById(userData.tutorId, (err, user) => {
if (err) {
try {
logger.silly(`message: POST inside passport.deserializeUser; file: index.js; error: ${err}; user: ${JSON.stringify(user)}`);
logger.error(`message: POST inside passport.deserializeUser; file: index.js; error: ${err}; user: ${JSON.stringify(user)}`);
} catch (e) {
成功注册后,可以使用req.login()
。
从官方Passport文档:
注意:
passport.authenticate()
中间件会自动调用req.login()
。 此功能主要在用户注册时使用,在此期间可以调用req.login()
来自动登录新注册的用户。
示例注册代码可能如下所示:
router.post("/register",(req,res) => {
var user = new User();
user.name = req.body.name;
user.email = req.body.email;
//define other things here
//create hash and salt here
user.save().then(user => {
//on successfult registration
//login user here, using req.login
req.login(user ,err => {
if(!err){
//redirect to logged-in page
//or user page
res.redirect('/')
}
})
})
})
我希望这能够帮到你。
您可以在成功注册后立即创建令牌并将其发送回注册响应中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.