4.1 KiB
4.1 KiB
회원가입 플로우 개편: 완료된 항목들
마지막 업데이트: 2026-07-08 상태: 회원가입 축소, 세션 쿠키 인증, 로그인 후 B01 리다이렉트 완료
✅ 완료된 구현 항목
1. DB 변경
- ✅
db_management/003_register_split.sql생성users.statusENUM에'NO_COMPANY'추가- 회원가입 시 회사 정보 NULL로 시작하도록 변경
2. 백엔드 변경 (A07_Register, A06_Login)
-
✅
A07_Register_Schema.py수정RegisterRequest필드:email,password,password_confirm,name,position,phone,terms_agreed,privacy_agreed,marketing_agreed,terms_version- 회사 관련 필드 전부 제거
password_confirm검증 추가
-
✅
common_util_auth_repository.py수정create_registration(): 회사/join_request 생성 로직 제거, users INSERT만 수행complete_registration(): 무조건status = 'NO_COMPANY'로 변경
-
✅
A07_Register_Router.py수정request_registration():password_confirm제외 처리
-
✅
A06_Login_Router.py수정request_login():status not in ("ACTIVE", "NO_COMPANY")체크로 변경current_session(): 응답에company_id,is_master추가
-
✅
common_util_auth.py수정require_company()dependency 추가
-
✅
main.py수정- B03~B06 라우터에
require_company의존성 추가
- B03~B06 라우터에
-
✅
config_db.py수정autocommit=True설정 (pooled 커넥션 트랜잭션 스냅샷 이슈 해결)
3. 리소스 파일
- ✅
resources/legal/terms_of_service.txt생성 - ✅
resources/legal/privacy_policy.txt생성 - ✅
resources/legal/marketing_consent.txt생성
4. 프론트엔드 변경 (A07_Register, A06_Login, Router)
-
✅
A07_Register_Api_Fetch.ts수정RegisterPayload필드 축소
-
✅
A07_Register_UI_Auth_Page.ts전면 재작성- 필드: name, position, email, phone, password, passwordConfirm, terms/privacy/marketing (아코디언)
- 약관 텍스트 파일 로드 기능
- OTP 입력 창 기존 로직 유지
-
✅
A00_Common/router.ts수정- B02~B11 라우트: company_id 없으면 B01로 리다이렉트
-
✅
ui_template_locale.ts수정A07_Register_Field_Position,A07_Register_Field_Phone,A07_Register_Field_PasswordConfirmA07_Register_Error_PasswordMismatch추가
-
✅
A07_Register_UI_Style.css수정.a07-register__agreement아코디언 스타일 추가
-
✅
A06_Login_Api_Fetch.ts수정SessionUser인터페이스에company_id,is_master추가fetchSessionUser()구현 (세션 조회 → company_id 확인용)
-
✅
A00_Common/app_shell.ts수정- 로그아웃 시
/auth/logoutAPI 호출 (서버 세션 삭제)
- 로그아웃 시
-
✅ B03~B06 API Fetch 파일 수정
- Bearer 토큰 제거,
credentials: "include"추가 (세션 쿠키 기반) B03_FileInput_Api_Fetch.ts,B04_wf1_Surface_Api_Fetch.ts,B05_wf2_Route_Api_Fetch.ts,B06_wf3_ProfileCross_Api_Fetch.ts
- Bearer 토큰 제거,
-
✅ 구식 파일 삭제
A06_Login_UI_Page.ts(localStorage 기반 구식 로그인 UI)
검증 항목 (사용자 확인됨)
1차 검증: 가입 및 이메일 인증 ✅
- 회원가입 폼 필드 축소 확인
- 약관 아코디언 펼쳐서 내용 표시 확인
- OTP 입력 칸 노출 확인
- 이메일 인증 완료 후 로그인 페이지 리다이렉트 확인
2차 검증: DB 상태 확인 ✅
users.status = 'NO_COMPANY'company_id = NULLrole = 'MEMBER'is_master = FALSE
3차 검증: 로그인 및 상태 ✅
- NO_COMPANY 상태에서도 로그인 성공 (기존: status != ACTIVE로 실패)
4차 검증: 회사 없이 B02+ 접근 차단 ✅
- B02~B11 진입 시 B01로 리다이렉트 동작 확인
- 백엔드 require_company 에러 발생
최종 상태
🟢 회원가입 플로우 개편 완료 (AD 단계 중 AC 완료)
- DB 마이그레이션 ✅
- 백엔드 로직 수정 ✅
- 프론트엔드 UI/라우팅 ✅
- 세션 쿠키 기반 인증 통일 ✅
- localStorage 토큰 완전 제거 ✅
- 회사 연결 필수화 (라우팅 가드) ✅
🟡 B01_AccountDetail 팝업 기능은 별도 작업 (D 단계 — 다음 세션)