Passport + Express session 사용하기
Passport의 인증 기능 중에 세션을 저장하는 부분이 있다.
Express 4.x 버전으로 오면서 session middleware가 별도 모듈로 분리되었기에
그에 따라 Passport와 express-session을 함께 사용하는 방법을 알아보겠다.
1) passport, express-session 설치
npm install --save passport
npm install --save express-session
2) passport ~ express-session 연결
const passport=require('passport');
const session=require('express-session');
const LocalStrategy=require('passport-local').Strategy;
// express-session을 사용하기 위한 설정
app.use(session({
secret: 'keyboard cat'
}));
app.use(passport.initialize());
app.use(passport.session());
// local strategy를 통한 id, password 인증
passport.use(new LocalStrategy({
usernameField: 'id',
passwordField: 'password'
},
function(id, password, done) {
User.findOne({ id: id }, function(err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
console.log(user);
return done(null, user, {result: '1'});
});
}
));
// 인증성공 시 세션에 저장
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
'Computer Science > Project #3' 카테고리의 다른 글
사이드 프로젝트를 시작하면서 (0) | 2016.06.14 |
---|