docs: WBS-CRM-08 소셜 로그인·고객 회원가입 항목 추가
- 네이버·카카오·구글 OAuth 2.0 + 기본 이메일 계정 지원 - 가입 입력 최소화 (이름·연락처 2필드) - portal_users 테이블 설계, 관리자 인증과 분리 원칙 - 필요 환경 변수·패키지·마이그레이션 목록 명시 - WBS-CRM-07(고객 포털) 선행 조건으로 등록 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+57
-2
@@ -342,15 +342,70 @@ Todo:
|
||||
목표: 기장 고객이 본인 신고 현황과 중요 알림을 직접 확인한다.
|
||||
|
||||
성공 기준:
|
||||
- 고객 전용 URL + 인증(단순 PIN 또는 링크 토큰)
|
||||
- 고객 전용 URL + 인증(소셜 로그인 또는 링크 토큰)
|
||||
- 본인 신고 일정, 상담 요약(세무사 허용 항목만) 조회
|
||||
- 개인정보 열람 범위는 세무사가 허용한 항목만
|
||||
|
||||
Todo:
|
||||
- [ ] 고객 포털 설계 (인증 방식 결정)
|
||||
- [ ] 고객 포털 설계 (인증 방식 결정 — WBS-CRM-08 선행)
|
||||
- [ ] 고객 전용 Razor Pages 추가
|
||||
- [ ] 세무사 허용 권한 설정 UI
|
||||
|
||||
## WBS-CRM-08 고객 회원가입 · 소셜 로그인 — Phase 3
|
||||
|
||||
목표: 고객 포털 접근을 위한 회원가입과 소셜 로그인을 제공한다.
|
||||
가입 마찰을 최소화해 상담 접수 → 고객 포털 전환율을 높인다.
|
||||
|
||||
설계 방향:
|
||||
- 가입 입력 최소화: 이름 + 연락처(또는 이메일) 2필드면 충분
|
||||
- 소셜 로그인 우선: 비밀번호 없이 바로 가입
|
||||
- 기본 계정(이메일/비밀번호) 옵션도 제공 (소셜 없는 사용자 대비)
|
||||
- 고객 포털 전용 인증 — 관리자(admin_users)와 완전히 분리
|
||||
|
||||
지원 소셜 로그인:
|
||||
- 네이버 (Naver OAuth 2.0) — 국내 주요 채널
|
||||
- 카카오 (Kakao Login) — 기존 카카오 채널 연계
|
||||
- 구글 (Google OAuth 2.0) — 해외·젊은 고객층
|
||||
|
||||
성공 기준:
|
||||
- 소셜 로그인 3종 모두 동작 (네이버·카카오·구글)
|
||||
- 이메일/비밀번호 기본 계정 가입 + 로그인 동작
|
||||
- 가입 폼: 이름·연락처 2필드만 요구 (소셜 프로필에서 자동 채우기)
|
||||
- 로그인 후 고객 포털 (`/taxbaik/portal`) 접근
|
||||
- 고객 계정이 백오피스 clients 테이블 레코드와 연결
|
||||
- 회원 계정 미인증 상태에서 포털 접근 시 로그인 페이지 리다이렉트
|
||||
|
||||
DB 스키마:
|
||||
- `portal_users` 테이블 (V011 마이그레이션)
|
||||
- id, client_id(FK, nullable), email, name, phone, provider(naver/kakao/google/local), provider_id, password_hash(nullable), created_at
|
||||
- 소셜 로그인 provider_id는 각 플랫폼 식별자
|
||||
|
||||
기술 결정:
|
||||
- ASP.NET Core OAuth Middleware (Microsoft.AspNetCore.Authentication.OAuth)
|
||||
- 네이버: 커스텀 OAuth handler (공식 패키지 없음, 직접 구현)
|
||||
- 카카오: AspNet.Security.OAuth.Kakao 패키지
|
||||
- 구글: Microsoft.AspNetCore.Authentication.Google 패키지
|
||||
- 고객 포털 세션: HttpOnly Cookie 기반 (JWT localStorage와 분리)
|
||||
|
||||
환경 변수 필요 (Gitea Secrets 추가):
|
||||
- `NAVER_CLIENT_ID` / `NAVER_CLIENT_SECRET`
|
||||
- `KAKAO_CLIENT_ID` / `KAKAO_CLIENT_SECRET`
|
||||
- `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET`
|
||||
|
||||
Todo:
|
||||
- [ ] WBS-CRM-07 고객 포털 기본 구조 완성 (선행)
|
||||
- [ ] OAuth 앱 등록 (네이버·카카오·구글 개발자 콘솔)
|
||||
- [ ] V011__CreatePortalUsers.sql 마이그레이션
|
||||
- [ ] PortalUser 엔티티 / IPortalUserRepository / PortalUserRepository
|
||||
- [ ] 네이버 OAuth Handler 구현
|
||||
- [ ] 카카오·구글 패키지 추가 및 설정
|
||||
- [ ] 기본 계정 회원가입 폼 (`/taxbaik/portal/register`)
|
||||
- [ ] 소셜 로그인 콜백 처리 → portal_users 자동 생성
|
||||
- [ ] 신규 가입 시 clients 테이블 연결 또는 신규 생성
|
||||
- [ ] 포털 로그인 페이지 (`/taxbaik/portal/login`) — 소셜 버튼 + 이메일 폼
|
||||
- [ ] Gitea Secrets에 OAuth 키 추가
|
||||
- [ ] 배포 후 소셜 로그인 3종 E2E 테스트
|
||||
|
||||
---
|
||||
|
||||
## ── 유지보수성 ─────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user