2016-07-14 4 views
0

여권 js, 기본 전략에있는 다음 코드 샘플은 사용자의 신원을 확인하는 기능을 제공합니다.돛 + 여권 + 기본 인증

passport.use(new BasicStrategy(
    function(userid, password, done) { 
    User.findOne({ username: userid }, function (err, user) { 
     if (err) { return done(err); } 
     if (!user) { return done(null, false); } 
     if (!user.verifyPassword(password)) { return done(null, false); } 
     return done(null, user); 
    }); 
    } 
)); 

질문은이 코드를 어디에 배치해야합니까? 사용자 정의 검증 기능에도 똑같이 적용되는 것으로 보입니까?

답변

0
  1. 다음

    login: function(req, res) { 
    
    passport.authenticate('local', function(err, user, info) { 
        if ((err) || (!user)) { 
         return res.send({ 
          message: info.message, 
          user: user 
         }); 
        } 
        req.logIn(user, function(err) { 
         if (err) res.send(err); 
         return res.send({ 
          message: info.message, 
          user: user 
         }); 
        }); 
    
    })(req, res); 
    
  2. passport.authenticate('local' 같이 될 것입니다 config.js 내부 passport.js에서 구성을 읽을 것이 라인 여권 핸들 로그인 프로세스를 만들기 위해 코드를 작성

  3. 컨트롤러 디렉토리에 AuthController를 만들 this : -

    passport.use (새 LocalStrategy ({ usernameField : '이메일', passwordField : '암호' }, 기능은 {

    User.findOne({ email: email }, function (err, user) { 
        if (err) { return done(err); } 
        if (!user) { 
        return done(null, false, { message: 'Incorrect email.' }); 
        } 
    
        bcrypt.compare(password, user.password, function (err, res) { 
         if (!res) 
         return done(null, false, { 
          message: 'Invalid Password' 
         }); 
         var returnUser = { 
         email: user.email, 
         createdAt: user.createdAt, 
         id: user.id 
         }; 
         return done(null, returnUser, { 
         message: 'Logged In Successfully' 
         }); 
        }); 
    }); 
    
  4. 이 route.js에 다음 줄을 추가 (이메일, 암호, 완료)가 : - 'post /login': 'AuthController.login'