왜 항상 같은 곳으로 리다이렉트 하지?
작성일: 2023.06.03
feltpen 개발 시리즈 (1)편:
feltpen에는 로그인 후 가장 최근에 들어간 워크스페이스로 redirect 시켜주는 편의 기능이 존재하는데 새로운 워크스페이스를 만들어도 항상 같은 워크스페이스로 이동하는 문제가 발생했다.
오류 발생 flow
정상 작동 flow
permanent 옵션을 소개하기에 앞서 307, 308 리다이렉트의 차이점을 알고 가야 한다.
아래 코드를 보자 permanet가 true로 표시되어 있다. 이 옵션은 redirect의 영구적인 상태를 의미한다. permanent가 true로 설정되어 있으면 308 영구 리다이렉트를, false로 설정되어 있으면
307 임시 리다이렉트를 하게 된다.
예시 코드 입니다.
export const getServerSideProps = () => {
return {
redirect: {
destination: `/workspaces/${workspaceId}`,
permanent: true,
}
}
}
이 코드로 인해 영구적인 리다이렉트가 되면서 항상 같은 워크스페이스로 이동하게 된 것이다.
즉, 원하던 결과를 만들려면 permanent을 false로 만들어주면 되는 것이다.
+) 이 이슈는 nextjs에서 발생했지만 permanent 옵션은 정말 많은 곳에 쓰이고 있는 만큼(예: k8s ingress) 차이를 분명히 알아두면 좋을 것 같다.