【问题标题】:How to change name attributes for input fields in NodeJS, Express, Passport?如何更改 NodeJS、Express、Passport 中输入字段的名称属性?
【发布时间】:2016-01-18 21:36:42
【问题描述】:

我有两个注册字段:

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

我想将名称属性更改为 usernameRegpasswordReg,以便我可以使用 Passport 进行注册。

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 中的名称属性之后)

Fiddle is here. - 不是完整的代码,只是为了便于突出显示。

【问题讨论】:

    标签: javascript node.js express passport.js


    【解决方案1】:

    使用护照的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) {
     ...
    });
    

    【讨论】:

    • 谢谢。我也用它来登录。我的登录字段具有相同的属性,即 name=password 和 name=username。我只是想避免在同一个 HTML 中具有相同名称的属性。
    • 输入的名称相同并没有错,只要它们以不同的形式使用即可。
    • 我知道,我只是想安全一点
    猜你喜欢
    • 2022-11-02
    • 2014-08-25
    • 2016-06-24
    • 2017-10-02
    • 2020-01-27
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多