2017-10-07 55 views
0

在我的前端登錄表單上,我只有輸入字段「email」和「password」。本地護照需要一個usernameField名稱並引發[MissingUsernameError:沒有給出用戶名]。有沒有什麼辦法讓護照本地不期望一個usernameField?護照本地貓鼬:未給出用戶名錯誤

+0

是的。您是否使用電子郵件代替用戶名? –

+0

是使用電子郵件代替。 – Jon

回答

0

如果你想使用電子郵件地址而不是用戶名,那麼你需要告訴護照。要做到這一點,請看下面的代碼片段:

passport.use(new LocalStrategy({ 
      usernameField: 'email', // this is where you do that 
      passwordField: 'password' 
     }, 
     (email, password, done) => { 
      User.findOne({ 
       email: email 
      }, (error, user) => { 
       if (error) { 
        return done(error); 
       } 
       if (!user) { 
        return done(null, false, { 
         message: 'Username or password incorrect' 
        }); 
       } 


       // Do other validation/check if any 

       return done(null, user); 
      }); 
     } 
    )); 
+0

明白了。還需要修改var newUser = new User({username:req.body.email ....});在註冊帖子路線中。非常感謝! – Jon