Skip to content

[REFACTOR] 구글 소셜 로그인 리팩토링 #60

@pykido

Description

@pykido

🔨 리팩터링 내용 및 진행 이유

  1. Spring Security OAuth2 Client를 통한 캡슐화
  • 현재 직접 구현한 OAuth 로직을 Spring Security OAuth2 Client로 마이그레이션
  • 복잡한 코드 완화 및 보안 강화
  1. DB 구조를 통한 개선 (소셜 로그인 회원 관리)
  • fake_ 학번 생성 방식 대신 socialType, socialId 필드 추가
  • 소셜 로그인 회원은 studentId, password를 nullable로 변경
  • 일반 회원과 소셜 회원을 명확하게 구분
  1. Origin 헤더 미전송 케이스 검토
  • 브라우저가 Origin 헤더를 보내지 않을 경우 로컬 개발 환경에서 콜백 URL 결정 실패 가능성 체크
  1. 세션 ID 기반 state 검증 방식 검토
  • JSESSIONID 쿠키가 전달되지 않으면 state 검증 실패 가능성 체크
  • 배포 후 프론트/백엔드 도메인 구조에 따라 문제 발생 여부 확인

🕐 현재 상황

  • Google OAuth 로그인/회원가입 기능 구현 완료
  • CSRF 방어를 위해 세션 ID + state를 조합한 Redis 키 사용 중
  • 회원 탈퇴 시 Google 연동 해제 로직 구현 완료 (accessToken 만료 시 refreshToken으로 재발급)
  • 소셜 로그인 회원은 fake_ prefix 학번과 랜덤 비밀번호로 임시 저장 중

🕚 수정 후 예상 결과

  • Spring Security 적용으로 OAuth 관련 코드 간소화 및 유지보수성 향상
  • DB 구조 개선으로 소셜/일반 회원 명확히 구분, fake_ 학번 제거
  • 다양한 브라우저 환경에서도 안정적인 OAuth 플로우 보장

Metadata

Metadata

Assignees

Labels

🛠️ 리팩토링기능 개선 및 최적화 작업(기능 변경 X)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions