소개
게시글
질문&답변
2019.12.31
문의드립니다!!
제가 설명이 조금 부족했나봅니다. 부과적인 설명을 드리자면, 로그인 이후, 회원가입 페이지를 들어간다면, 강좌에서는 useEffect 를 사용하여, me 의 정보가 있다면 Router.Push 를 하여 메인페이지로 이동을 시켜주는데, 사실, useEffect 라는 사이클은 render 이후에 발생되는 사이클이라 매끄럽지가 않아보입니다. 그래서 getInitialProps 단에서 미리 체크 하여, fron server 단에서 push 를 해준다면 훨씬 매끄러울것 같아 제 스스로 응용하고자 찾아보고 구현하고자 했던 것입니다. getInitialProps 에서는 const { res } = context; if (res) { res.writeHead(302, { Location: '/' }) res.end(); } else { Router.push('/') }; 이런식으로 처리가 가능하더군요. (router) 그런데 문제가 바로, me의 존재여부(로그인여부)를 판단하고자하는 const state = context.store.getState(); state.user.me 의 데이터가 없다는 것이 문제여서 질문을 드렸었습니다. ssr 을 통해, server 단에서 dispatch 하여 미리 데이터는 받아오지만, 순서가 아래와 같은 것 같더군요. client signup 페이지 요청 -> _app -> getInitialProps -> 디스패치(유저정보가져오기) 요청[request] -> signup -> geInitialProps -> 디스패치(유저정보가져오기) 성공[success] -> signup page render 이런 순으로 가져오는 것 같아, signup.js 의 getInitialProps 단에서 render 이전에 처리할수 있는 방법이 있을까 하고 질문을 드렸습니다. 항상 감사합니다. 새해복 많이 받으세요.
- 0
- 2
- 184
질문&답변
2019.12.23
ctx.req.headers.cookie undefined 증상
해당 글에 대한 답은 스스로 찾았지만, 찾으면서 또다른 의문이 생기게 되었습니다..^^;; 제가 제 핸드폰이나, 지인들의 접속을 위해 포트포워딩을 통해 특정 port만 열어 개발을 하다보니, 아예 서버로 부터 요청을 제 개인 공인 IP를 사용하여 개발을 하였습니다. 알고보니, 쿠키의 정보중 도메인이 중요하게 작용하여 제가 보는 페이지(localhost:3000)에서는 서버요청을 통해 만들어진 쿠키(219.?.?.?.? [공인ip])를 인식하지 않더군요.. 그래서, (219.?.?.?.? [공인ip]):3000 으로 접속하니, 정상적으로 잘 인식 되었습니다. 그러다보니, 생긴 의문은, 나중에 프론트 서버와, 백엔드 서버의 도메인이 서로 다를 경우, 인식이 불가능할 수 있다는 의문이 생기게 되는데요.. 또한 withCredential로 전달한 쿠키는 현제 제가 접속한 localhost의 주소임에도 불구하고 그동안 알아서 찾아 (219.?.?.?.? [공인ip]) 쿠키 데이터로 전달했다는 의미가 되는데.. 의문이네요.. 나중에 실제로 백엔드 ip와 프론트 ip가 서로다를 경우에는 프론트서버로 뭔가 설정을 추가로 해주어야 하는 부분인가요~~??
- 0
- 2
- 233
질문&답변
2019.12.13
질문 드립니다!
답변 너무 감사드립니다.
- 0
- 2
- 110