如何更改 NodeJS、Express、Passport 中输入字段的名称属性

How to change name attributes for input fields in NodeJS, Express, Passport?

本文关键字:字段 输入 属性 何更改 NodeJS Express Passport      更新时间:2023-09-26

我有两个注册字段:

<input type="text" class="form-control" name="username" placeholder="Username">
<input type="text" class="form-control" name="password" placeholder="Password">

我想将姓名属性更改为可用于使用 Passport 进行注册的usernameRegpasswordReg

Account.register(new Account({ username : req.body.username }), req.body.password, function(err, account)

我尝试将req.body.username更改为req.body.usernameRegreq.body.password更改为req.body.passwordReg,但它不起作用,它给了我一个错误的请求错误(当然,在分别更改HTML中的名称属性之后)

小提琴在这里。 - 不是完整的代码,只是为了更容易看到突出显示。

使用护照local-strategy时,可以将输入字段的名称作为属性传递

passport.use(new LocalStrategy({
  usernameField: 'usernameReg',
  passwordField: 'passwordReg'
  },
  function(username, password, done) {
    Account.register(new Account({ username : username }), password, function(err, account) { .. });
  }
));

然后,您的路线将如下所示:

router.post('/', passport.authenticate('local'), function(req, res) {
 ...
});