배경 (Background)
사용자를 식별하고 접근 권한을 제어하기 위한 설계가 필요합니다.
설계 및 기술 자료 (Architecture and Technical Documentation)
<aside>
💡
🤔 이 섹션은 왜 필요한가요?
- 프로젝트를 어떻게 구현할 것인지 구체적인 기술 계획을 담습니다.
- API 명세, 데이터베이스 스키마(ERD), 시스템 구조, 사용 기술 등을 명시하여 개발자들이 참조할 수 있도록 합니다.
- 기술적인 결정과 그 근거를 기록하여 추후 유지보수나 변경 시 참고 자료로 활용됩니다.
</aside>
사용 기술:
사용자 식별 및 인증 방식
[인증 전략]
- 하이브리드 인증:
- 최초 인증 : OAuth 2.0 프로토콜을 사용하여 신뢰할 수 있는 외부 제공자(Kakao)로부터 사용자 신원(Email, Provider ID)을 검증한다.
- API 인가: 인증 완료 후 서비스 내부에서는 JWT 기반의 자체 토큰 시스템을 통해 Stateless 방식의 인가를 수행합니다.
[인증 흐름]
- 인증 코드 전달: 클라이언트는 인가 코드를 획득하여 서버로 전달합니다.
- 서버간 통신: 서버는 인가 코드를 사용하여 소셜 제공자와 직접 통신, 유효성을 검증하고 사용자 프로필을 획득합니다.
- 토큰 발급: 검증된 사용자에 대해 자체 서비스의 Access Token과 Refresh Token을 발급합니다