2016-10-21 1 views
0

passportjs (google/facebook 전략)를 사용하여 로그인합니다. 내가 본 것은 req.session (express-session에서)이 소셜 채널 (사용자 직렬화 사용)을 통해 로그인 한 후 'passport.user'키로 업데이트된다는 점입니다. 이건 괜찮아.빠른 서버의 요청 개체가 지속되지 않습니다.

내가 기대 한 것은 req.session에 여전히 passport.user 키가 포함되어 있지만 다음 HTTP 요청이 만들어지면 발생한다는 것입니다. 그래서 mongo-connect를 통해 mongodb에 세션을 저장해야했습니다. 이제 mongo store에 세션 정보가 있습니다.

정상적인 동작입니까? 그 req 객체는 동일한 고속 서버 인스턴스에 대한 두 개의 HTTP 요청 사이에 지속되지 않습니까? 따라서 새로운 요청이있을 때마다 세션을 mongo 상점에서 검색해야합니다.

위의 req.session 동작이 true이면 왜 deserializeUser가 필요한가요?

답변

0

Passport의 세션 미들웨어를 사용하도록 앱을 설정 했습니까?

// Configuring Passport 
var passport = require('passport'); 
var expressSession = require('express-session'); 

app.use(session({ secret: 'secret'})); 
app.use(passport.initialize()); 
app.use(passport.session()); 

저는 웹 앱을 만들고 여권 전략을 사용하고 있습니다. 성공적으로 인증되면 사용자 정보가 세션에 추가되고 로그 아웃하는 동안 세션에서 삭제 될 때까지 사용자 정보가 유지됩니다.

관련 문제