javascript - 使用 Passport.js 注册用户还是手动创建用户?

标签 javascript node.js passport.js bookshelf.js

在互联网上,很多人都使用本地策略在 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 is authentication middleware for Node" (http://www.passportjs.org/docs/)

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

但是当您的身份验证规则变得更加复杂(并且它们会)时,Passport.js 就会变得很方便。

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

关于javascript - 使用 Passport.js 注册用户还是手动创建用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608258/

相关文章:

javascript - 什么是测试 Dom 重 js 的好方法?

javascript - 使用 imagemagick 将透明 PNG 转换为 JPEG

html - 布局定制与使用两种布局 -expressjs

oauth-2.0 - GooglePlusAPI 返回错误 'Legacy People API has not been used in project'

javascript - 如何通过变量将方法名称传递给@click来绑定(bind)方法

javascript - 在 TypeScript 中扩展 Vuetify 组件

node.js - 将 Node.js 包发布到 NPM 以外的地方

express - 无 session 的 Passport js 身份验证

javascript - 使用 Passport.js 的 Google+ 用户年龄范围

javascript - 确定 JavaScript 类中的问题范围