Skip to content

자체 로그인·회원가입 기능 제거 (Google OAuth 단일화) - #303

Open
ckdals4600 wants to merge 1 commit into
mainfrom
feature/#302-remove-local-auth
Open

자체 로그인·회원가입 기능 제거 (Google OAuth 단일화)#303
ckdals4600 wants to merge 1 commit into
mainfrom
feature/#302-remove-local-auth

Conversation

@ckdals4600

@ckdals4600 ckdals4600 commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

관련 이슈

PR 설명

초기 개발용 자체(이메일/비밀번호) 회원가입·로그인 코드를 전부 제거하고, 인증 진입점을 Google OAuth(/oauth2/**) + JWT 재발급(/v1/auth/reissue)으로 단일화했음. Member.password 필드까지 걷어내 OAuth 가입의 이메일 평문 더미 저장을 근절했음.

배경

  • 비밀번호가 PasswordEncoder 가 아니라 Base64 인코딩(역산 가능)으로 저장되고 있었음(MemberService.signup/login). PasswordEncoder 빈은 프로젝트에 존재하지 않았음.
  • OAuth 가입(MemberCommandService.createOrUpdate)은 Member.password(NOT NULL)를 채우기 위해 이메일 평문을 더미 비밀번호로 저장하고 있었음(.password(email)).
  • 두 경로가 SecurityConstants.PERMIT_URLS/* temp */ 블록에 공개 URL 로 남아 있어, 사용하지 않기로 한 인증 경로에서 역산 가능한 약한 크리덴셜로 계정이 생성·탈취될 수 있다고 판단했음.

변경 사항

1. 자체 로그인 엔드포인트·서비스 제거

  • MemberController·MemberApi 에서 POST /v1/member/signup·POST /v1/member/login 제거, SignupReq·LoginReq DTO 삭제
  • MemberService.signup/login(Base64 인코딩 로직 포함), MemberCommandService.addUser, MemberQueryService.existsMemberByEmail + MemberRepository.existsMemberByEmail 제거

2. Member.password 필드 제거와 배포 순서

  • Member 에서 password 필드·생성자 파라미터·verifyPassword 제거, createOrUpdate.password(email) 더미 주입 제거
  • CustomMemberDetail.getPassword() 는 빈 문자열 반환으로 변경함 — JWT 인증 경로(JwtTokenProviderCustomMemberService)는 password 를 사용하지 않음

3. 공개 URL·에러코드 정리

  • SecurityConstants.PERMIT_URLS /* temp */ 블록에서 /v1/member/signup·/v1/member/login 제거 — 같은 블록의 /mock/** 은 별개 용도라 유지함. 제거 후 두 경로는 permit 목록에서 빠져 비인증 요청에 401 로 응답함
  • MemberErrorCode 에서 DUPLICATE_EMAIL(M-001)·INCORRECT_PASSWORD(M-003) 제거

4. 테스트 정리

  • 기능 자체가 사라진 signup/login/addUser 검증 9건 삭제(MemberServiceTestMemberApiIntegrationTestMemberCommandServiceTest 1) — 파일 전체가 비는 경우가 없어 테스트 파일 삭제는 없음
  • createOrUpdate 의 PENDING_TERMS 상태·USER 권한 저장 검증 1건 추가, CustomMemberDetailTest 는 빈 문자열 반환 계약으로 단언·@DisplayName 교체
  • (부속) 30개 파일 73건의 Member.builder().password(...) 픽스처 라인 제거

확인

  • 운영 DB 정리 완료
    1. ALTER TABLE member ALTER COLUMN password DROP NOT NULL;
    2. DDL ①(ALTER TABLE member ALTER COLUMN password DROP NOT NULL;)

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

📊 코드 커버리지 리포트

Overall Project 90.92% 🍏
Files changed 100% 🍏

File Coverage
MemberService.java 100% 🍏
MemberErrorCode.java 100% 🍏
CustomMemberDetail.java 100% 🍏
MemberCommandService.java 88% 🍏
MemberQueryService.java 65.63% 🍏
MemberController.java 62.99% 🍏

@goder-0 goder-0 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

- signup/login 엔드포인트·SignupReq/LoginReq·서비스 로직(Base64 인코딩) 제거
- Member.password 필드 제거, OAuth 가입의 이메일 평문 더미 저장 제거
- PERMIT_URLS 임시 공개 경로 정리, CustomMemberDetail 은 빈 비밀번호 반환
- (부속) 테스트 픽스처 .password(...) 제거 및 signup/login 테스트 삭제 — 기능 변경 아님
@ckdals4600
ckdals4600 force-pushed the feature/#302-remove-local-auth branch from 5ca5e53 to 3eb971e Compare August 26, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

자체 로그인·회원가입 기능 제거 (Google OAuth 단일화)

2 participants