使用passport.js注册用户或手动创建用户

Use passport.js for register users or manually create them?

本文关键字:用户 创建 使用 js 注册 passport      更新时间:2023-09-26

看看互联网,很多人都在使用本地策略在Passport中使用"注册"方法。但是,与手动在数据库中创建记录相比,这有什么优势吗?

我的意思是,如果我们使用护照策略来做这件事,我们可以:

passport.use('local-signup', new LocalStrategy({
  usernameField: 'email',
  passwordField: 'password',
  passReqToCallback: true
}, (req, email, password, done) => {
    User.findOne({
      email: email
    })
    .then(user => {
      if (user) {
        return done(null, false);
      } else {
        User.create(req.body)
        .then(userCreated => {
          return done(null, userCreated);
        })
        .catch(err => {
          return done(err)
        });
      }
    })
    .catch(err => {
      return done(err)
    });
  }
));

但是这真的需要吗?或者我们可以这样创建用户?(使用Bookshelf.js):

 this.model.findOne({
   email: email
 })
 .then(user => {
   if (user) {
     res.status(403).json({
       message: 'Email not available.'
     });
   } else {
     User.create(req.body)
     .then(userCreated => {
       res.status(201).json(userCreated);
     })
     .catch(err => {
       next(err);
     });
   }
 })
 .catch(err => {
   next(err);
 });
}

首先,让我们明确定义什么是Passport.js:

"Passport是Node的认证中间件" (http://www.passportjs.org/docs/)

你可以创建这样的用户,然后用你的on代码处理其余的登录过程。

但是当你的认证规则变得更复杂时(它们会变得更复杂),Passport.js就派上了用场。

使用它,您不需要浪费时间创建代码来处理访问限制,API暴露等。js为您处理所有这些。因此,您可以专注于应用程序的其他实现细节。