Node.js
passport.js
Szukaj…
Wprowadzenie
Paszport to popularny moduł autoryzacji dla węzła. Krótko mówiąc, obsługuje wszystkie żądania autoryzacji w Twojej aplikacji przez użytkowników. Paszport obsługuje ponad 300 strategii, dzięki czemu możesz łatwo zintegrować logowanie z Facebookiem / Google lub dowolną inną siecią społecznościową, która go używa. Omówimy tutaj strategię lokalną, w której uwierzytelniasz użytkownika przy użyciu własnej bazy danych zarejestrowanych użytkowników (przy użyciu nazwy użytkownika i hasła).
Przykład LocalStrategy w passport.js
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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow