Strongloop의 루프백 프레임 워크로 API 빌드를 보호하기 위해 passport.js + passport-facebook-token을 사용하고 있습니다.각 요청마다 passport.serializeUser가 실행되는 이유는 무엇입니까?
deserialize 된 사용자가 deserialize 된 후 Passport가 다시 serialize하는 이유는 무엇입니까? 또한 모든 요청에 대해 passport.authenticate 메소드가 호출됩니다! 내가 도대체 뭘 잘못하고있는 겁니까? 여기
deserializeUser, id: XXXXXXXXXXXXXXXX
User found.
serializeUser, id: XXXXXXXXXXXXXXXX
GET /api/events?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 304 182ms
는 JS 코드 : 여기
노드의 로그 당신이 미들웨어로 정의하기 때문에
passport.authenticate
이 모든 요청에서 호출 이유에 대한 질문에 대해서는
passport.use(new FacebookTokenStrategy({
clientID: XXXXXXXXXXXXXXXX,
clientSecret: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'
},
function(accessToken, refreshToken, profile, done) {
//check user table for anyone with a facebook ID of profile.id
User.findOne({
'facebookId': profile.id
}, function(err, user) {
if (err) {
return done(err);
}
if (user) {
console.log("User found.");
return done(err, user);
} else {
console.log("User not found.");
User.create({
email: profile.emails[0].value,
facebookId: profile.id,
password: 'secret'
}, function(err, user) {
console.log(user.id);
console.log(user.email);
console.log(user.facebookId);
console.log("User created");
return done(err, user);
});
}
});
}));
passport.serializeUser(function(user, done) {
console.log('serializeUser, id: ' + user.facebookId);
done(null, user.facebookId);
});
passport.deserializeUser(function(id, done) {
console.log('deserializeUser, id: ' + id);
User.findOne({
'facebookId': id
}, function(err, user) {
if (!err) {
done(null, user);
} else {
done(err, user);
}
});
});
인증을 처리하는 미들웨어를 정의하는 코드를 표시 할 수 있습니까? 'passport.authenticate ("facebook", function ....)'와 같이 보일 것입니다. 'app.get ("/ *", passport.authenticate())'와 같이하면 예상대로 작동합니다. –
이 위치에 추가 된 유일한 위치는 다음과 같습니다. app.use (passport.authenticate ('facebook-token')); –
흠, 알았어. 하지만 내 이해는 그것이 무단 액세스로부터 내 API를 보호하고 있기 때문에 그것이 미들웨어로 추가되어야한다는 것이 었습니다 ... 어디에이 라인을 추가 할 수있는 적절한 장소가 될 것입니까? 또는 무엇을 제안합니까? –