로그아웃 시 router cache 갱신 안됨
480
작성한 질문수 4
signOut({ redirect: false }).then(() => {
fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/logout`, {
method: "post",
credentials: "include",
});
router.refresh();
router.replace("/");
});
로그아웃 버튼에 `router.refresh()`를 추가하면 로그아웃 버튼을 누르고 다시 로그인했을 때 기존 정보의 캐시가 삭제되고 새로 갱신된다고 하셨는데
저 코드를 추가해도 기존 정보가 계속 남아있는 경우는 어디를 확인해봐야 할까요?
브라우저에서 캐시 지우고 새로고침, 브라우저 창 재시작, 서버 껐다 켜기를 해봤는데도 계속 이전 정보가 남아있습니다..
답변 3
0
현재 ch4 코드에서 router.refresh()를 추가하니 기존 정보가 없어지는 것을 확인했습니다. 한 가지 다른 점은 router.redirect('/') 앞이 아니라 뒤에 refresh를 넣으니 됩니다. 앞에 넣으면 안 되네요.
0
뒤에 넣으니 해결 됐습니다!
앞에 넣은 경우는 /home에서 로그아웃을 한 경우 /home의 캐시를 지우고 /로 리다이렉트가 되고 /에서 로그인을 다시 하는 경우 /에 캐시가 남아있어 캐시된 정보를 불러왔다고 판단해야 할까요?
뒤에 넣은 경우는 /home에서 /로 리다이렉트를 한 뒤 refresh로 캐시를 지웠기 때문에 /의 캐시된 데이터가 없어 로그인 후에 /home에서 새로운 데이터를 갱신했기 때문인건지 궁금하네요..
1
이 부분은 저도 단순히 공식문서로는 확인이 안 돼서 한 번 next.js 소스코드 까보겠습니다. 일단 우열님의 추론이 맞는 것 같습니다.
rotuer.refresh가 current route를 refresh하는 거라서 현재 라우트가 누구냐가 중요한 것 같네요.
router.refresh(): Refresh the current route.
0
signOut 시에 next서버쪽에는 에러가 없나요? 브라우저 캐시가 아니라 쿠키를 지워야 로그아웃이 되긴 합니다(이게 signOut의 역할이긴 합니다). 네트워크탭의 로그아웃요청 cookies 탭에서 쿠키가 사라지고 있어야 합니다.
0
네.. 에러는 전혀 없구요.
네트워크 탭에서 프론트, 백 쿠키 모두 지워지고 있습니다.
라우터 캐시라고 하셔서 클라이언트에 캐시가 남아있다고 판단했습니다.
새로고침하면 다시 로그인한 유저 정보가 들어오긴 합니다.
0
├── @auth/core@0.27.0
├── @faker-js/faker@8.4.1
├── @mswjs/http-middleware@0.9.2
├── @tanstack/react-query-devtools@5.28.4
├── @tanstack/react-query@5.28.4
├── @types/cors@2.8.17
├── @types/express@4.17.21
├── @types/node@20.11.26
├── @types/react-dom@18.2.22
├── @types/react@18.2.65
├── classnames@2.5.1
├── cookie@0.6.0
├── cors@2.8.5
├── dayjs@1.11.10
├── eslint-config-next@14.1.3
├── eslint@8.57.0
├── express@4.18.3
├── msw@2.2.4
├── next-auth@5.0.0-beta.11
├── next@14.1.3
├── react-dom@18.2.0
├── react-intersection-observer@9.8.1
├── react-textarea-autosize@8.5.3
├── react@18.2.0
├── typescript@5.4.2
└── zustand@4.5.2
현재 npm 리스트 이렇게 사용중입니다
캡처링부분 질문있습니다.
0
74
2
깃에 소스코드를 찾을 수 없습니다.
0
113
2
useInfiniteQuery promise와 react use 사용시 페이지 무한 로딩
0
98
1
import 파일 경로를 찾지 못 해서 에러가 발생합니다.
0
109
2
css 라이브러리 추천 부탁드립니다
0
140
2
팔로우 추천 목록이 빈 배열로 들어옵니다.
0
130
1
게시물 업로드 시 userId가 undefined로 들어가는 오류
0
119
1
useSuspenseQuery 사용 시 SSR 401 이슈 관련
0
171
1
리액트 쿼리 useinfinitequery 무한스크롤 구현 시 페이지가 이동할 경우 데이터가 보존되게 할 수 있나요??
0
184
3
폴링이 필요없는 이유
0
93
2
next Request Memoization과 react cache
0
108
2
seo 최적화 기준은 데이터 fetching인가요 아님 데이터 렌더링인가요?
0
84
2
next.js 서버fetch 에러 fallback ui 구현 방법
0
173
2
프레임워크 여론 파악법
0
125
2
필터옵션이 많은 페이지에서 서버 fetch를 하는게 맞는걸까요??
0
103
2
서버 fetch suspense 로 감싸고 새로고침 시 잠시 빈 화면이 노출된 후 fallback ui가 노출됩니다.
0
102
2
template.tsx 내 서버fetch 응답값과 클라이언트 컴포넌트 상태값 싱크가 맞지 않는 이슈
0
66
2
Auth.js 사용 시 authorize 함수가 호출되지 않습니다
0
131
2
next.js 에서 로그인에 관하여
0
138
1
Next의 route handler에 대한 질문이 있습니다.
0
101
2
게시판 리스트 만들때 use client를 어디서부터 집어넣어야할지 모르겠습니다
0
98
2
프라이빗 폴더를 해야 하는 이유가 모호한 것 같아요.
0
85
2
vanilla-extract 못찾는 문제
0
230
2
fetch 캐싱과 revalidate 관련
0
84
2





