다크모드
FE 메인테이너 — Company 관리자 회원가입
라우트와 화면
- 라우트:
/auth/signup - 화면:
src/components/auth/signup/SignupPag.vue - 검증:
src/composables/signupValidation.js - Auth/Company seam:
src/composables/companySignupRepo.js - Company 문맥:
src/composables/useAccountContext.js
흐름
validateCompanySignup()이 전체 필드를 검증하고 휴대전화·사업자등록번호를 숫자로 정규화한다.signUpCompanyOwner()가supabase.auth.signUp()을 호출한다.signup_kind=company_owner메타데이터는 이메일 확인 완료 후 DB trigger가 Company·owner membership·product workspace로 원자적 변환한다. 확인 전에는 public row나 사업자등록번호 선점이 없다.- 즉시 세션이 발급되면
loadCurrentCompanyAccount()로 Company를 다시 읽고/onboarding/products로 이동한다. - 이메일 확인이 필요하면 확인 안내 화면을 유지하고 로그인 링크를 제공한다.
- 로그인 시 서버의 활성 subscription·entitlement를 다시 읽어
useModuleSubscription을 교체한다. - 활성 subscription이 없으면 임의의 redirect나 브라우저 데모 캐시보다
/onboarding/products를 우선한다.
패스워드는 Auth payload에만 존재하며 public metadata/table에는 저장하지 않는다.
정보 설계
- 항상 노출: 필드명, 필수 여부, 패스워드 조건, 오류, 약관 동의.
- 점진 공개: Company와 Office의 차이는 SSOT
InfoHint패턴으로 제공한다. - 삭제한 입력: 계약 관리자 계정에 필요하지 않은 생년월일·성별.
- 삭제한 표면: 가입 폼 아래의 장문 안내 accordion 2개.
회귀 검증
src/composables/__tests__/signupValidation.spec.jssrc/composables/__tests__/companySignupRepo.spec.jssrc/components/auth/signup/SignupPag.spec.jssrc/composables/__tests__/useAccountContext.spec.js
실배포에서는 빈 제출 차단, 이메일 확인 분기, 재로그인 후 Company 이름 복원, 모바일 390px overflow를 확인한다. 신규 Company 재로그인에서는 상품 선택 화면 진입과 entitlement 0건도 확인한다.