对于带有Node.js的Passport-Local,是否可以使用电子邮件而不是用户名进行身份验证?

kur*_*kun 4 node.js passport.js

我正在使用本地护照在我的节点应用程序上提供本地身份验证.但是,我想将其更改为使用电子邮件地址而不是用户名进行身份验证.有没有办法做到这一点?

谢谢.

Max*_*air 12

您必须先使用{usernameField:'email'}将默认用户名字段更改为电子邮件,然后您可以根据电子邮件运行数据库搜索并检查密码:

passport.use(new LocalStrategy({ usernameField: 'email' }, function(email, password, done) {
  UserModel.findOne({ email: email }, function(err, user) {
    // Check password functionality  
  })
})
Run Code Online (Sandbox Code Playgroud)