작성
·
435
·
수정됨
0
export const getServerSideProps: GetServerSideProps = async ({ req, res }) => {
try {
const cookie = req.headers.cookie;
console.log(req.headers.cookie);
// 쿠키가 없다면 에러를 보냄
if (!cookie) throw new Error('Missing auth token cookie');
// 쿠키가 있다면 그 쿠키를 이용해서 백엔드에서 인증 처리하기
await axios.get('/auth/me', { headers: { cookie } });
return { props: {} };
} catch (error) {
// 백엔드에서 요청에서 던져준 쿠키를 이용해 인증 처리할 때 에러가 나면
// login 페이지로 이동
res.writeHead(307, { Location: '/login' }).end();
return { props: {} };
}
};
axios.get에 파라미터로 헤더.쿠키 로 넣어준걸까요?
근데 순서대로 코드가 동작하게되면 if문에 걸려서 영원히 쿠키가 없어 페이지가 로그인페이지로 이동될텐데 제가 잘못생각한걸까요?
두번쨰로 리턴 props:{}로 해주신 이유에대해서 궁금합니다. 다른식으로 그냥 return; 이렇게 작성하고 끝내도 괜찮을까요?
답변 1
1
로그인 하게 되면 쿠키가 생성 됩니다. 그리고 페이지를 이동 하거나 페이지를 새로고침하거나 브라우저를 종료 하더라도 쿠키를 남길 수 있습니다. 그러므로 로그인 한 상태라면 작성자님 질문대로 if문을 무사히 통과 할것입니다. 쿠키에 대해 더 자세히 알고 싶으시면 구글에 검색해서 찾아보시는걸 추천드립니다.
해당 리턴 props:{}는 Nextjs 문법이며 참고로 getServerSideProps 함수 또한 Nextjs 문법입니다. 해당 사항은 강의 초반 강사님 설명대로 강좌 리스트 맨 아래에 보시면 typescript+Nextjs 이론에 대한 설명이 있으니 학습 하시는걸 추천드립니다.