본문 바로가기

Computer Science/Project #3

Passport + Express session 사용하기

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