javascript – passportjs LocalStrategy是否允许比默认用户名和密码更多的参数?

前端之家收集整理的这篇文章主要介绍了javascript – passportjs LocalStrategy是否允许比默认用户名和密码更多的参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 javascript,node和passportjs的新手.对不起,如果这不正确.我想在护照本地策略中使用3个参数:用户名,电子邮件,密码.可能吗?如果是这样的话?

根据passportjs:“默认情况下,LocalStrategy希望在名为username和password的参数中找到凭据.如果您的站点更喜欢以不同方式命名这些字段,则可以使用选项来更改默认值.”但我可以添加更多的参数吗?

我试过这个:

passport.use('local-signup',new LocalStrategy({
        // by default,local strategy uses username and password,we will override with email
        usernameField : 'username',emailField : 'email',passwordField : 'password',passReqToCallback : true // allows us to pass back the entire request to the callback
    },function(req,username,email,password,done) {
        console.log("username:"+username + "email:"+email + "pwd:"+password);
    }));

但它将电子邮件记录为密码和密码作为某些功能

解决方法

我怀疑你要做的是在他注册时保存用户的其他信息.

您的所有信息都存储在req.body中,因此您只需将其保存在回调中:

passport.use(new LocalStrategy({
    usernameField: 'your_form_username_or_email_fieldname',passwordField: 'your_form_password_fieldname'
  },function(username,done) {
    // ...

    // set the user's credentials
    newUser.username = req.body.username;
    newUser.email = req.body.email;
    newUser.password = newUser.generateHash(password);

    // ....

  }
));

没有必要更改本地策略,因为它只需要2个争论(电子邮件/用户名密码)

猜你在找的JavaScript相关文章