尝试仅通过电子邮件字段建立Passport身份验证

问题描述

我正在尝试仅使用电子邮件进行注册(不使用用户名,密码等),以本地护照对用户进行身份验证

我尝试更改大多数必填字段以接受电子邮件,但是当尝试使用电子邮件进行注册时,我继续在终端中收到“ MissingUsernameError”。我是编码的新手,绝对是使用护照/身份验证的新手,所以我们将不胜感激!

这是我当前的参考代码

设置护照:

passport.serializeUser(User.serializeUser()); password.deserializeUser(User.deserializeUser());

passport.use(新的LocalStrategy({ usernameField:'email', },User.authenticate()));

注册发布路线:

app.post(“ / subscribe”,function(req,res){

User.register(new User({username: req.body.email}),function(err,user){
    if(err){
        console.log(err);
        return res.render("subscribe")
    }
    passport.authenticate("local")(req,res,function(){
        res.redirect("home")
    })
})

});

我的用户架构的user.js页面

var mongoose = require(“ mongoose”); var PassportLocalMongoose = require(“ passport-local-mongoose”);

var UserSchema = new mongoose.Schema({ 用户名:字符串 });

UserSchema.plugin(passportLocalMongoose,{usernameField:“ email”});

module.exports = mongoose.model(“ User”,UserSchema);

非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)