Study 📔

[Supabase] getSession과 getUser의 차이점 정리

SeongJo 2025. 3. 3. 00:00
반응형

안녕하세요, 성조입니다.

오랜만에 포스트를 작성하게 됐네요.

이번 포스트는 간단하게 학습하고 정리한 내용을 작성한 포스트입니다.


getSession()과 getUser()란?

공통 - Supabase의 auth 모듈에서 유저의 인증 정보를 관련해서 가져오는 함수이다.

 

getSession()

- 사용자가 로그인되어 있는지 확인하고, 세션의 만료 시간을 포함한 정보를 반환함.  

- 인증 토큰이 필요할 때 사용할 수 있음.

 

getUser()

- 현재 로그인한 사용자의 기본 정보를 반환.

- 프로필 정보(이메일, ID, 사용자 메타데이터 등)를 얻을 때 사용.

 

 

정리

함수 설명 반환 값
getSession() 현재 인증 세션 정보를 가져옴 {session, expires_at }
getUser() 현재 로그인한 사용자의 정보를 가져옴 {user}

 

최신 Supabase 코드에서 더 이상 지양되는 getSession()?

- 최신 Supabase Auth API에서 getSession()보다 getUser()가 조금 더 권장되는 편.

- getUser()를 호출하면 내부적으로 세션도 확인할 수 있기 때문에, getSession()을 따로 사용할 필요가 줄어들어서 처음 로그인/로그아웃 하는 과정에서 주로 사용되는 정도로 축소 됨

 

 

onAuthStateChange의 등장과 적용 사례

- 사용자가 로그인/로그아웃할 때 자동으로 UI를 업데이트하고 싶을 때

- 세션이 만료되었을 때 자동 로그아웃 처리하고 싶을 때

- 클라이언트 앱(Next.js, React 등)에서 로그인 상태를 유지 및 관리할 때

즉, 실시간 상태 감지를 위해 사용하는 onAuthStateChange 함수.

 

onAuthStateChange의 단점

1. 불필요한 API 요청을 반복 호출하는 경우

2. 컴포넌트가 여러 번 마운트될 때마다 이벤트 리스너가 중복 등록되는 경우

 

효율적 함수 세팅

✅ getSession() → 초기 로그인 상태 확인 (1회 호출)

✅ onAuthStateChange() → 로그인/로그아웃 감지 (UI 자동 업데이트)

✅ getUser() → 필요할 때만 사용자 정보 가져오기 (불필요한 API 요청 방지)

 


아직 제가 만들고 있는 프로덕트에서는 onAuthStateChange를 적극적으로 가져오지 못하고 있는 상황이에요.

조금 더 공부해서 다듬을 수 있도록 해보겠습니다.

 


[잡담]

2023년과 2024년은 쉽지 않은 일들로 가득한 시간이었네요.

주변에서 걱정할 만큼 힘든 일들이 종종 있었지만, 그에 슬퍼하고 주저앉아 있기엔 젊음이 너무 아깝다고 생각합니다.

이제는 털어내고 또 다시 앞으로 나아가 보려고 해요. 😊

올해는 이전보다 조금 더 행복하기 위함을 목표로 스스로 조금 더 노력해보려 합니다. 그리고, 네이버 블로그도 꾸준히 다시 작성해보려 해요.

이 글을 읽어주시는 분들 올해는 지난 날보다 더 행복하시길 바랄게요. 

아직은 부족한 점이 많지만, 직접 하나씩 개발해 나가며 더 나은 서비스를 만들기 위해 웹과 앱을 함께 1인 개발하고 있습니다.

https://www.muricture.com/

 

Muricture

Muricture는 일정과 콘텐츠가 연결되는 SNS 기반 캘린더 플랫폼입니다. 모먼츠를 자유롭게 공유하고, Planaz로 나만의 캘린더를 커스터마이징하세요.

www.muricture.com


블로그 좋아요와 구독도 좋지만, 제가 차근차근 만들고 있는 서비스를 피드백 받을 수 있다면 조금 더 행복할 것 같습니다.😊

 

 

오타 또는 잘못 전달된 내용이 있다면 언제든지 댓글로 공유주시면 감사드리겠습니다!

다음 포스트에서 뵐게요 🫡

반응형