0
인증을 위해 NodeJS + Restify 및 PassportJS를 사용하여 REST-API를 작성하고 싶습니다. 사용자가 로그인하면 sessionId를 생성하여 세션에 저장합니다.req.user is undefined
var Passport = require('passport');
var PassportBearerStrategy = require('passport-http-bearer').Strategy;
// Authentication
Passport.use(new PassportBearerStrategy(function(sessionId, cb) {
Auth.getSession(sessionId, function(userId){
cb((!!userId), { userId: userId }, userId);
});
}));
server.get(
'/user',
Passport.authenticate('bearer'),
function(req, res, next){
console.info(req.user ); // undefined
respond(res, {});
return next();
}
);
모든 기능 우는 소리에, req.user
이 undefined
것을 제외하고 작동합니다. 나는 세션을 활성화해야한다는 것을 알았다. 하지만 이미 내 세션을 구현 했으므로 다른 세션이 필요하지 않습니다.
내가 필요한 건, cb(true, user)
라고 말하면 아래 함수에 도착한다는 것입니다.
이 문제를 해결할 방법이 있습니까?
나는 그 전략을 한번도 사용하지 않았고 오직 지역 전략 만 사용했다. 로컬에서는 사용자를 직렬화 및 비 직렬화하는 함수가 있어야합니다. req.user를 통해 나중에 액세스 할 수있는 사용자를 제공하는 desarialize 함수입니다. 이 기능이 없습니까? – yBrodsky
@yBrodsky, 네가 맞다.이 기능들이 빠져있다. https://stackoverflow.com/questions/27637609/understanding-passport-serialize-deserialize req.user는 아직 정의되지 않았습니다. – TSM