PassportJS
Federation Authentification
app.post('/auth/login',
passport.authenticate(
'local',//'local'이라는 strategy가 실행되면 위의 passport.use의 콜백함수가 실행된다!
{ successRedirect: '/welcome',
failureRedirect: '/auth/login',
failureFlash: false}))passport.use(new LocalStrategy(//'LocalStretegy'객체를 생성하여 우리가 이전 코드에서 콜백함수로 작성했던 부분을 여기서 수행하는 듯.
function(username, password, done) {//MongoDB의 API를 쓰고 있는 듯.
var uname = username;
var pwd = password;
for(var i=0;i<users.length;i++) {
var user = users[i];
if(uname === user.username) {
return hasher({password:pwd, salt:user.salt},function(err,pass,salt,hash){
if(hash === user.password) {
done(null,user);//첫번째 인자인 null은 에러가 발생하면 그 에러.
} else {
done(null,false);//로그인 절차가 끝났지만 로그인에 실패했다는 뜻.
}
});
}
}
//user들을 찾는 for문이 끝났는데도 못찾으면 아래를 실행.
done(null,false);
}
));Last updated