Auth session missing!
수파베이스 auth 사용중에
자꾸만 마주치는 auth session missing!
이것을 해결하기 위해 별 방법을 다 써보고 했지만
레딧이나 깃헙이슈에도 같은 문제를 겪는 사람들이 많은 걸 보니
뭔가 수파베이스에 문제가 있는 것 같기도 합니다.
아무튼 서버측에서 날리는 fetch 의 결과가
tanstack query 의 prefetch query 와 함께 쓸 때
미들웨어서는 getUser 가 잡히지만
prefetch query에서는 안 잡힌다거나
혹은 자꾸 있었다 없었다 하는 문제를 해결해보고자
(십중팔구 auth session missing...)
안되면 fetch를 할 때 쿠키를 직접 같이 배달해보자라고 생각했습니다.
그래서 fetch 함수를 다음과 같이 작성했습니다.
fetch
export async function getBuddyServer(
userId: string | null,
): Promise<Buddy | null> {
const cookieStore = cookies();
const cookiesArray = cookieStore.getAll();
if (cookiesArray.length === 0) {
return null;
}
const url = `/api/auth/buddy`;
try {
if (!userId) return null;
const data = await fetchWrapper<Buddy>(url, {
method: 'POST',
body: JSON.stringify({ userId }),
cache: 'no-store',
headers: {
Cookie: cookiesArray
.map(cookie => `${cookie.name}=${cookie.value}`)
.join(';'),
},
next: { tags: ['buddy'] },
});
return data;
} catch (error: any) {
if (error.message === 'Auth session missing!') {
return null;
}
throw error;
}
}
nextjs 가 지원하는 cookies 를 사용해서
현재 쿠키를 전부 가져온다음
headers에 cookie에 넣어버립니다.
그러고도 catch 되는 에러가 'Auth session missing!'
이면 그냥 null 리턴하게 일단 처리했는데
이것이 맞는 방법인지는 모르겠습니다.
어쨌거나 이 방법을 통해 툭하면 나타나는
Auth session missing! 문제는 해결이 되었습니다.
하지만 여전히 찝찝한 이 기분은...??
'supabase' 카테고리의 다른 글
[240820 TIL] supabase.rpc(내배캠 마지막 TIL) (0) | 2024.08.20 |
---|---|
[240808 TIL] 테이블 join 해서 가져오기 (0) | 2024.08.08 |
[240730 TIL] supabase upsert (0) | 2024.07.30 |
[240729 TIL] 수파베이스 리얼타임(테이블저장) (0) | 2024.07.29 |
[240728 TIL] naver 로그인 편법 구현 with Supabase 2편 (0) | 2024.07.28 |