수색…


소개

Passport는 노드에 대한 널리 사용되는 권한 부여 모듈입니다. 간단히 말하면 사용자가 앱에 대한 모든 승인 요청을 처리합니다. Passport는 300 가지가 넘는 전략을 지원하므로 로그인을 Facebook / Google 또는 다른 소셜 네트워크와 쉽게 통합 할 수 있습니다. 여기서 논의 할 전략은 사용자 이름과 비밀번호를 사용하여 등록 된 사용자의 데이터베이스를 사용하여 사용자를 인증하는 로컬입니다.

passport.js의 LocalStrategy 예제

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

passport.serializeUser(function(user, done) { //In serialize user you decide what to store in the session. Here I'm storing the user id only.
  done(null, user.id);
});

passport.deserializeUser(function(id, done) { //Here you retrieve all the info of the user from the session storage using the user id stored in the session earlier using serialize user.
  db.findById(id, function(err, user) {
    done(err, user);
    });
});

passport.use(new LocalStrategy(function(username, password, done) {
    db.findOne({'username':username},function(err,student){
        if(err)return done(err,{message:message});//wrong roll_number or password; 
        var pass_retrieved = student.pass_word;
        bcrypt.compare(password, pass_retrieved, function(err3, correct) {
          if(err3){
            message = [{"msg": "Incorrect Password!"}];
            return done(null,false,{message:message});  // wrong password
          }       
          if(correct){
              return done(null,student);
          } 
        });
    });
}));

app.use(session({ secret: 'super secret' })); //to make passport remember the user on other pages too.(Read about session store. I used express-sessions.)
app.use(passport.initialize());
app.use(passport.session());

app.post('/',passport.authenticate('local',{successRedirect:'/users' failureRedirect: '/'}),
    function(req,res,next){
});


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow