표현하기가 새로 생겨서 사용자가 내 앱에 로그인 할 때 세션을 만들려고합니다. 인증에 여권을 사용하고 있습니다. 로그인하는 사용자는 기본 전략을 만들고 기본 전략의 성공에 따라 쿠키에서 클라이언트 측에 저장하는 JWT 토큰을 만들고 있으며 이후 요청에 JWT 전략을 사용합니다.auth 헤더가 변경되면 Express가 다른 세션을 만듭니다.
하지만 JWT 헤더가있는 후속 호출에 대해 Basic 헤더와 다른 세션이있는 로그인 할 때 express-session이 하나의 세션을 생성하는 것을 알 수 있습니다. 여기
는이 코드를 디버깅 할 때 req.sessionID 한 sessionID와를 보여줍니다 내가 로그인signin = function(req, res, next) {
passport.authenticate('basic', function(err, user, info) {
if (err) { return next(err) }
if (!user) {
return res.status(401).json({ error: 'message' });
}
var token = jwt.encode({ user: user}, config.db.secret);
res.cookie('token', token, { maxAge: 900000, httpOnly: true, path: '\/', Secure: true });
res.status(200).json({ success: true, firstName: user.firstName });
delete user.password;
req.session.user = user;
req.session.save();
})(req, res, next);
};
에 세션을 저장하고하지만 내 코드이며 다음 코드 req.sessionID에서 다른 sessionID와를 표시하는 JWT 인증
listProducts = function(req, res) {
debugger;
//here req.session.user is undefined which I have saved at login. and sessionID is also different
res.json({ demo: 'response' });
};
으로 나는 내 응용 프로그램에서 사용자가 로그인 할 때까지 수명주기 전반에 걸쳐 동일한 sessionID와 것으로 기대하고있다. 왜 이런 일이 발생합니까? 그것에 대한 해결책은 무엇입니까?
당신이 앱에 명시 세션 및 여권 미들웨어를 추가하는 코드를 추가 할 수 있습니까? – arboreal84