728x90
반응형
OAuth 2.0이란?
OAuth 2.0은 "다른 서비스의 계정으로 로그인하기"를 안전하게 해주는 표준 프로토콜입니다. 예를 들어, 새로운 앱에 가입할 때 "Google로 로그인" 버튼을 본 적 있죠? 그게 바로 OAuth입니다.
왜 OAuth를 사용할까?
사용자 입장에서:
- 새로운 비밀번호를 만들 필요 없음
- 이미 사용하는 계정(Google, 카카오 등)으로 간편 로그인
개발자 입장에서:
- 사용자 정보를 직접 관리할 필요 없음
- 보안 걱정 줄어듦
- 회원가입 절차 간소화
OAuth Flow

여기에서 supabase auth 서버를 사용하면 OAuth 서비스와의 통신을 대신 해주게 되어,
편리하다. (개발자 입장에서는 파란색 부분만 신경쓰면 된다)
❌ 개발자가 안 해도 되는 것들 (Supabase가 대신): 빨간색 부분
- OAuth URL 생성 및 파라미터 관리
- Authorization Code ↔ Access Token 교환
- Apple API 호출 및 사용자 정보 가져오기
- Token 검증 및 만료 처리
- 보안 관련 복잡한 처리 (PKCE, state 파라미터 등)
✅ 개발자가 해야 하는 것 (파란색 부분):
// 1. 로그인 시작
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'google',
redirectTo: `${getSiteUrl()}/auth/callback`
});
// 2. 로그인 완료 후 토큰 받기 - auth/callback Page에서
const { data: { session } } = await supabase.auth.getSession()
// 3. API 호출
const user = data.session.user;
const { data } = await supabase.from('users').select('*').eq('id', user.id)
단, 현재는 BaaS 통합형(Auth + DB + API) 로 supabase 를 사용하고 있어서,
별도의 매핑 테이블 없이 session 에서 가져온 data.session.user 를 그대로 DB에도 사용할 수 있다.
Auth 서버는 아래의 링크를 참조
728x90
'Tech Notes' 카테고리의 다른 글
| SSL 인증서란? (0) | 2025.09.17 |
|---|---|
| Auth 서비스 비교 (0) | 2025.09.16 |
| React에서 무한 루프 발생 원인 (0) | 2025.09.11 |
| React Hook은 언제, 왜 사용하는가? (1) | 2025.09.11 |
| Blob URL vs Presigned URL: 웹 개발자를 위한 완전 가이드 (0) | 2025.09.11 |