질문&답변
쿠키 및 서버사이드렌더링 관련 문의드립니다.
어떻게하면 좋을지 좀더 생각해볼게요. 문제 원인을 못찾으면 코드 구조를 다 바꾸거나 아니면 토큰방식을 일단은 포기해야할거같아요...ㅎㅎㅎ 시간내주셔서 감사합니다.
- 좋아요수
- 0
- 댓글수
- 6
- 조회수
- 817
질문&답변
어떻게하면 좋을지 좀더 생각해볼게요. 문제 원인을 못찾으면 코드 구조를 다 바꾸거나 아니면 토큰방식을 일단은 포기해야할거같아요...ㅎㅎㅎ 시간내주셔서 감사합니다.
질문&답변
export const getServerSideProps = wrapper . getServerSideProps ( async ( context ) => { const cookie = context . req ?. headers . cookie ; console . log ( cookie ); if ( context . req && cookie ) { axios . defaults . headers . Cookie = cookie ; context . store . dispatch ( silentLogin ()); axios . defaults . headers . Cookie = '' ; } 서버사이드렌더링쪽 코드가 쿠키가 있을 때만 silentLogin이 요청되는 구조입니다. 원래 예상대로라면 로그아웃을 눌렀을때, 쿠키가 없어서 if 안에 코드가 실행이 안되는 거였어요. 음 서버사이드렌더링이라서 redux의 state는 사용이 불가능하더라구요. 로그아웃할때 쿠키를 새로 보내주고 그 쿠키가 있는지를 체크해볼까 했는데, 문제가 서버사이드렌더링에서는 직전에 보내준 쿠키를 못받더라구요(쿠키삭제가 안되는것처럼요). 그 다음 실행부터(두번째 로그아웃클릭이나 새로고침 혹은 다른페이지이동) 백서버에서 보내준 요청이 프론트서버에도 적용이 됩니다. 어떻게 코드를 짜야할지 모르겠어요...ㅠㅠㅠ
질문&답변
한번 클릭했을 때 Application -쿠키를 확인해보면 쿠키가 없어요. 두번째 로그아웃 클릭시 네트워크탭에서 로그아웃api 요청헤더를 확인해보면, 거기에도 쿠키가 없는채로 요청이 갑니다. 첫번째랑 두번째 로그아웃 클릭시 request header입니다. 1 2 음...이게 보편적인 상황은 아닌가보네요 ㅜㅜ
질문&답변
바로 다음 강의에 있는 내용이었네요 ^^ ;;;; 앞으로 다음강의도 확인해봐야겠어요...ㅎ.ㅎㅎ
질문&답변
이렇게하니까 되네요!ㅠㅠ 감사합니다!
질문&답변
콘솔은 routes/post.js에서 router . post ( '/' , async ( req , res , next ) => { console . log ( req . user ); try { const post = await Post . create ({ content : req . body . content , UserId : req . user . id , }); res . status ( 201 ). json ( post ); } catch ( error ) { console . error ( error ); next ( error ); } }); 이렇게 콘솔을 찍었고, 서버쪽 콘솔에서 undefined TypeError: Cannot read property 'id' of undefined 이렇게 떴어요.
질문&답변
아직 강의에서 morgan 설정 하는 부분 안나왔어요, 이후에 강의를 듣다보면 해결이 될까요?ㅜㅜ 넵 로그아웃은 데이터가 없어서 function logOutAPI () { return axios . post ( '/user/logout' , { withCredentials : true }); } 이렇게 넣었어요.
질문&답변
function logInAPI ( data ) { return axios . post ( '/user/login' , data , { withCredentials : true }); } 이렇게 작성했는데도 여전히 로그아웃 시 401에러가 떠요ㅜㅜ (cors에서도 credential 설정했어요) post라우터에서도 isLoggedIn 미들웨어빼고 req.user을 콘솔로 찍어보면 여전히 undefined가 뜹니다.
질문&답변
앗 그렇네요!!! 아 그래서 이렇게...... 너무 기본적인 실수라 부끄럽네요....하핳... 오류날때 어떻게 찾아야하는지 좀더 배운것 같아요. 감사합니다.
질문&답변
아니요 그건 처음 한번만 떠요ㅠㅠ 사가쪽 console만 반복돼요.