📌 Django OAuth 리팩토링 - 8편: 닉네임 중복 확인 API 구축
·
프로젝트
OAuth 소셜 로그인 (Naver & GitHub)🔐 소셜 로그인을 통해 가입 장벽을 줄이고🎯 JWT 기반 토큰 + 닉네임 API까지 완전 연동🧭 1. 구조 개요/oauth/naver/login/, /oauth/github/login/ : 각 소셜 로그인 시작/oauth/naver/callback/, /oauth/github/callback/ : 로그인 후 콜백 처리/oauth/nickname/ : 신규 회원의 닉네임 등록 처리🏗️ 2. URL 구성# config/urls.pypath('oauth/', include('oauth.oauth_urls'))# oauth/oauth_urls.pyurlpatterns = [ path("naver/login/", naver_login), pat..
📌 Django OAuth 리팩토링 - 7편: 닉네임 중복 확인 API 구축
·
프로젝트
닉네임 중복 확인 API 구축🔹 실시간 중복 검사 대응🔹 GET / POST 방식 모두 구현🔹 Swagger 문서 커스터마이징으로 명확한 응답 예시 제공🚩 1. 목적닉네임이 이미 사용 중인지 프론트엔드에서 즉시 확인 가능하게 함기존 Form 로직 제거 후 API 전환GET / POST 방식 모두 지원 → 유연한 클라이언트 대응🔧 2. Serializer 정의class NicknameCheckSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nickname(self, value): if CustomUser.objects.filter(nickname=value).exists()..
📌 Django OAuth 리팩토링 - 6편: 닉네임 설정 API 리팩토링 (HTML Form → DRF API)
·
프로젝트
📌 Django OAuth 리팩토링 - 6편: 닉네임 설정 API 리팩토링 (HTML Form → DRF API)✅ 기존 HTML Form 처리 → DRF 기반 API로 전환✅ 프론트엔드 SPA 환경에 적합한 구조✅ 닉네임 설정 시 JWT 쿠키 자동 세팅까지!🔧 1. 기존 방식 문제RedirectView 기반 처리 → 비동기 환경에서는 불편CSRF Token 문제로 API 활용이 제한적별도 Form page를 통한 닉네임 입력 → SPA 구조와 어울리지 않음🛠️ 2. API 방식으로 전환🔹 Serializerclass NicknameSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nic..
📌 Django OAuth 리팩토링 - 5편: 닉네임 중복 확인 API 구현
·
프로젝트
📌 Django OAuth 리팩토링 - 5편: 닉네임 중복 확인 API 구현✅ 회원가입 시 닉네임 중복 여부 실시간 확인✅ GET 방식과 POST 방식 모두 지원✅ Swagger 문서에 상세히 반영🧪 1. 닉네임 중복 확인 로직🔹 Serializer (Validation 중심)class NicknameCheckSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nickname(self, value): if CustomUser.objects.filter(nickname=value).exists(): raise serializers.ValidationError("..
📌 Django OAuth 리팩토링 - 4편: OAuth 기반 회원가입 + 닉네임 설정 로직 리팩토링
·
프로젝트
📌 Django OAuth 리팩토링 - 4편: OAuth 기반 회원가입 + 닉네임 설정 로직 리팩토링✅ 소셜 로그인(OAuth)으로 간편하게 로그인✅ 최초 로그인 시 사용자 정보가 부족한 경우 → 닉네임 입력✅ 이후 닉네임 설정 완료되면 정상적인 사용자로 등록🧱 1. 기본 흐름 구조1️⃣ 사용자가 네이버/깃허브 OAuth 로그인 요청2️⃣ provider callback에서 access_token으로 사용자 식별3️⃣ 우리 DB에 이메일 정보 기준으로 사용자 확인4️⃣ 없다면 임시 사용자 등록5️⃣ 프론트에 access/refresh token 발급 + "닉네임 필요" 상태 반환6️⃣ 별도 API에서 닉네임 설정 후 회원가입 완료 처리⚙️ 2. 임시 유저 등록 로직🔹 소셜 콜백 처리 (oauth_v..
📌 Django OAuth 리팩토링 - 3편: 닉네임 중복 확인 API 구현
·
프로젝트
📌 Django OAuth 리팩토링 - 3편: 닉네임 중복 확인 API 구현✅ OAuth 최초 가입 시 닉네임 입력이 필요하다면✅ 사용자가 입력한 닉네임이 이미 있는지 미리 확인하는 기능도 함께 제공!🔍 1. 닉네임 중복 확인 API 구조📌 목적닉네임은 유일해야 하므로 중복 검증 필수사용자는 닉네임 입력 → 실시간 중복 확인 요청으로 UX 개선⚙️ 2. 시리얼라이저 구현 (serializers.py)class NicknameCheckSerializer(serializers.Serializer): nickname = serializers.CharField() def validate_nickname(self, value): if User.objects.filter(nickname..
📌 Django OAuth 리팩토링 - 2편: OAuth Callback + JWT 쿠키 연동
·
프로젝트
📌 Django OAuth 리팩토링 - 2편: OAuth Callback + JWT 쿠키 연동✅ 네이버/깃허브 로그인 후 콜백 처리부터✅ 최초 로그인 유저 → 닉네임 입력 → 회원가입 처리✅ JWT를 쿠키에 심어 자동 로그인 구현까지!🔄 1. OAuth 콜백 구조 이해✔️ 로그인 과정/oauth/naver/login/ or /oauth/github/login/ 접속 시 → 각 플랫폼 인증 URL로 리디렉션로그인 성공 → callback URL로 code + state 쿼리 파라미터 전달이 값을 바탕으로 access_token 요청 및 사용자 프로필 획득🧩 2. 콜백 뷰 리팩토링 (oauth_views.py)🔄 기존 form 기반 → ✅ API 기반 리팩토링class NaverLoginRedirec..
📌 Django OAuth 리팩토링 - 1편: secret.json → .env + OAuth API 리팩토링
·
프로젝트
📌 Django OAuth 리팩토링 - 1편: secret.json → .env + OAuth API 리팩토링🔧 프로젝트 설정 환경 개선✅ 기존 문제secret.json을 통해 민감 정보를 관리했으나, 버전 관리에 취약하고 배포/개발 환경 분리 어려움🔄 개선 작업python-dotenv를 이용해 .env 및 .env.local 방식으로 전환.env에는 운영환경용, .env.local에는 개발용 설정 분리 관리base.py에서 아래 순서로 로드:load_dotenv(BASE_DIR / ".env") load_dotenv(BASE_DIR / ".env.local", override=True)🔒 NAVER_CLIENT_ID, GITHUB_SECRET 등 OAuth 관련 설정도 모두 환경변수로 이동🌍 ..