회원가입 시 자동으로 세션 생성 문제 (Next.js & Supabase)

2024. 10. 19. 17:40·프론트엔드/Next.js

 

 

Supabase.Auth 회원가입 시 자동으로 세션 생성 문제

 

 

문제 발생

Next.js와 Supabase를 사용하여 회원가입 및 로그인/로그아웃 페이지를 구현하던 중, 회원가입 후 자동으로 로그인되는 문제를 겪었다.

이로 인해 회원가입 후 로그인 페이지로 이동해도 이미 로그인된 상태로 세션이 유지되었고, 결과적으로 예상치 못한 중복 로그인 문제가 발생했다.

 

내용을 찾아보니 `Supabase.auth.signUp`을 사용하면 자동으로 `session`에 저장이 되는 것...

 

 

 

해결

해결 방법 1

회원가입 후 로그아웃 처리 처음에는 아래와 같은 방식으로 문제를 해결했다.

회원가입 성공 후, `signOut` 메서드를 호출하여 자동 생성된 세션을 초기화하고, 로그인 페이지로 이동하도록 처리를 했다.

 

const { error } = await supabase.auth.signUp({
  email,
  password,
  options: {
    data: {
      nickname,
    },
  },
});

if (error) {
  toast.error("회원가입 실패: " + error.message);
} else {
  toast.success("회원가입 성공!");
  await supabase.auth.signOut();  // 로그아웃
  router.push("/login");
}

 

이 방법을 사용하여 일단 문제를 해결할 수 있었다.

그리고 트러블 슈팅을 적고 있다보니 더 나은 방법을 알게 되었다.

 

 

 

해결 방법 2

`autoSignIn` 옵션 사용 Supabase의 `signUp` 메서드에서 `autoSignIn` 옵션을 `false`로 설정하면, 회원가입 시 자동으로 세션이 생성되지 않도록 할 수 있다고 한다.

이 방법을 적용하면 별도로 `signOut`을 호출할 필요 없이 회원가입만 진행하고 로그인 페이지로 이동할 수 있었다.

 

const { error } = await supabase.auth.signUp({
  email,
  password,
  options: {
    data: {
      nickname,
    },
    autoSignIn: false, // 자동 로그인 방지
  },
});

if (error) {
  toast.error("회원가입 실패: " + error.message);
} else {
  toast.success("회원가입 성공!");
  router.push("/login");
}

 

이렇게 하면 자동으로 로그인 세션이 생성되지 않아 더 깔끔한 해결책이 될 수 있다.

 

 

간단하게 정리하자면

첫 번째 방법은 회원가입 후 로그아웃을 호출하는 방식,

두 번째 방법은 autoSignIn 옵션을 사용하여 세션 자동 생성을 방지하는 것이다.

 

나중에 사용할 때는 두번째 방법을 사용해 보는 것으로!!

 

 

 

'프론트엔드 > Next.js' 카테고리의 다른 글

[최종 프로젝트] Chart.js를 활용한 데이터 시각화  (1) 2024.10.31
[최종 프로젝트] 연도, 월 selectbox 컴포넌트 만들기  (0) 2024.10.31
Next.js에서 middleware.ts 사용 시 주의사항 (tsconfig.json 설정)  (0) 2024.10.17
Next.js - 4가지 렌더링 방식 (SSG, SSR, CSR, ISR)  (0) 2024.09.26
Next.js - 클라이언트 컴포넌트, 서버 컴포넌트  (0) 2024.09.25
'프론트엔드/Next.js' 카테고리의 다른 글
  • [최종 프로젝트] Chart.js를 활용한 데이터 시각화
  • [최종 프로젝트] 연도, 월 selectbox 컴포넌트 만들기
  • Next.js에서 middleware.ts 사용 시 주의사항 (tsconfig.json 설정)
  • Next.js - 4가지 렌더링 방식 (SSG, SSR, CSR, ISR)
장쫑이이
장쫑이이
  • 장쫑이이
    JongHoy
    장쫑이이
  • 전체
    오늘
    어제
    • 코딩공부하기 (41)
      • 프론트엔드 (41)
        • Next.js (12)
        • React (16)
        • TypeScript (2)
        • 상태관리 (1)
        • HTML&CSS (1)
        • 기타 (9)
      • 과거 공부 내용 (0)
        • JSCODE 그룹스터디 (0)
        • JS 객체 지향 프로그래밍 (0)
        • 리엑트 (0)
        • 제로초 - 웹 게임을 만들며 배우는 리엑트 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    속성 추가
    map
    While문
    이중 for문
    행렬의 덧셈
    useState
    유클리드 호제법
    LastIndexOf
    setAttribute
    git
    isNan
    slice
    필터링
    destructuring
    팀프로젝트
    Filter
    github
    reduce
    styled-components
    토글
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
장쫑이이
회원가입 시 자동으로 세션 생성 문제 (Next.js & Supabase)
상단으로

티스토리툴바