작성
·
906
0
로그인을 한 후 로그아웃을 해보았습니다. 로그인을 하면 /profile 페이지로 가게되고 /auth/logout을 하면 / 로 돌아옵니다.
/auth/loginn을 하게 되면 로그가 아래와 같이 잘 찍히고 페이지 이동도 잘 됩니다.
Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `deletedAt`, `followingId`, `followerId` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`email` = 'ydkim@gmail.com');
POST /auth/login 302 292.273 ms - 60
GET /profile 304 0.878 ms - -
GET /main.css 304 3.621 ms - -
/auth/logout을 할 때 강의에서 말씀하신 대로
이렇게 해보았는데 로그는 아래와 같이 나옵니다. 유저가 로그인 되었다는 session이나 쿠키를 어떻게 확인하나요? 그리고 req.user은 어떻게 확인하나요?
POST /auth/login 302 312.140 ms - 60
GET /profile 304 17.371 ms - -
GET /main.css 304 16.912 ms - -
false
undefined
Session {
cookie: {
path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true,
secure: true
}
}
GET /auth/logout 302 4.894 ms - 46
GET / 304 9.218 ms - -
GET /main.css 304 2.477 ms - -
답변 16
1
1
1
1
1
로그아웃 전에는 deserializeUser가 호출 안되는 상황이신거죠? 프론트 브라우저 콘솔에서 애플리케이션 탭 쿠키에는 connect.sid 들어가나요? 안 들어간다면 /auth/login이 잘못 작성된 것입니다. 브라우저에 로그인 시 쿠키가 가야지만 그 다음 요청부터 쿠키를 활용하여 deserializeUser에서 req.user를 만들어냅니다.
1
1
다른 강좌랑 착각했네요. withCredentials는 같은 주소이므로 안 하셔도 됩니다. deserializeUser랑 serializeUser는 passport 폴더 내에 작성하셨죠? 여기 안에 console.log를 찍어보세요. 특히 로그인 후에 serializeUser가 호출되어야 하고, logout 전에 deserializeUser가 호출되어야 합니다.
또한 app.js에서 passport.initialize와 passport.session 미들웨어도 연결하셨는지 확인해보세요.
1
연관수업
deserializeUser 이해하기1
1
로그아웃 때 req.user, req.isAuthenticated()이 안 뜬다면 로그인이 안 된 것입니다. 프론트에서 withCredentials: true 넣으셨나요? 쿠키가 서버로 전송되어야 로그인되었는지 아닌지를 서버가 알 수 있습니다.
0
아래 설정을 바꾸니 set-cookie가 되네요.
감사합니다. 역시 제가 설정을 이상하게 한 탓이네요.
이렇게 까지 응답을 해주셔서 감사합니다.
그래도 오늘 원인을 알게되어서 덜 찜찜할 것 같습니다. 감사합니다!!!!!!!!!!!!!
0
0
0
0
0
프론트에서 withCredentials: true 넣으라는 말씀은 어디에 넣어야 하나요? app.js에 넣는 것인가요? 제가 아직 cors라는 건 아직 진도를 안 나갔고..지금은 deserializer이해하기 하는 중인데요. 좀 막막해서 다시 여쭤봅니다.