2013-05-14 2 views

답변

4

는합니다 (LocalStrategy 검증 콜백에서) 유효성 검사를 직접 구현해야하기 때문에, 당신이 그것을 전달할 수 있습니다 원하는 무엇이든 :

passport.use(new LocalStrategy(function(email, password, done) { 
    // search your database, or whatever, for the e-mail address 
    // and check the password... 
}); 
+0

이것은 사용자 이름의 로컬 범위 이름을 변경하지만 여권은 'username'이외의 필드와 함께 POST 요청을 수락하기 때문에 userName 필드를 설정해야합니다. Maxim McNair의 대답을 참조하십시오. – Mentor

12

이 먼저 {usernameField와 이메일로 기본 사용자 이름 필드를 변경해야합니다 ' 당신은 아래와 같이 요청 PARAMS에서 이메일 ID에 대한 데이터베이스를 조회 할 수 있습니다

passport.use(new LocalStrategy({ usernameField: 'email' }, function(email, password, done) { 
    UserModel.findOne({ email: email }, function(err, user) { 
    // Check password functionality 
    }) 
}) 
+2

이것은 허용 된 대답이어야합니다. – derek

0

: 이메일 '} 그런 다음 비밀번호를 이메일을 기반으로 데이터베이스 검색을 실행하고 확인할 수 있습니다

,536,
passport.use('signup', new LocalStrategy({ 
     passReqToCallback : true // allows us to pass back the entire request to the callback 
    }, 
    function(req, username, password, done) { 
     //console.log(email); 
     console.log(req.param('email')); 
     findOrCreateUser = function(){ 
      // find a user in Mongo with provided username 
      User.findOne({ 'email' : req.param('email') }, function(err, user) { 

      }); 
     }))  
관련 문제