# 會員平台(Member Center) 此專案為多網站共用的會員登入中心與電子報訂閱管理平台。文件統一放在 `docs/`。 ## 目標(MVP) - 多個網站共用的會員登入中心(SSO) - OAuth2 + OIDC 登入(API 與 Redirect 兩種方式) - 電子報訂閱管理(含未註冊訂閱) - 未註冊訂閱者可自行取消訂閱 - 未註冊訂閱者未來註冊可沿用訂閱資料 ## 既定條件 - OAuth2 + OIDC - 會員中心只負責 Email/訂閱管理,發送系統另建 - 訂閱採 double opt-in - 各站各自設計 UI,主要走 API;少數狀況使用 redirect - 會員資料跨站共享(邏輯隔離) - 訂閱事件同步採 event/queue - DB:PostgreSQL - 開發:C# .NET Core + MVC + OpenIddict ## 範圍(第一階段) - 多租戶(站點)概念與基本設定 - 會員與訂閱者 Email 身分識別 - OAuth2/OIDC 授權(Authorization Code + PKCE) - 訂閱/取消訂閱流程(含未註冊) - 基本管理後台(核心 CRUD) ## 非目標(暫不處理) - 第三方社群登入 - MFA - 行銷自動化或行為追蹤 - 金流/付費會員 ## 文件 - `docs/DESIGN.md`:系統設計總覽、核心模組、資料模型與流程原則 - `docs/UI.md`:UI 路由規劃與 Use Cases 對應 - `docs/USE_CASES.md`:需求用例(角色、情境、驗收) - `docs/FLOWS.md`:主要業務流程(註冊、登入、訂閱、退訂、管理) - `docs/OPENAPI.md`:API 規格說明與補充規則 - `docs/openapi.yaml`:OpenAPI 3.1 正式規格檔 - `docs/SCHEMA.sql`:資料庫 schema(PostgreSQL) - `docs/SEED.sql`:初始化/測試資料 - `docs/TECH_STACK.md`:技術棧與選型 - `docs/INSTALL.md`:安裝、初始化與維運指令 ## 專案結構 ```text member_center/ ├── src/ │ ├── MemberCenter.Api/ # REST API(OAuth/OIDC、訂閱、管理 API) │ ├── MemberCenter.Web/ # MVC Web UI(會員與後台頁面) │ ├── MemberCenter.Installer/ # 安裝與初始化 CLI(migrate/init/admin) │ ├── MemberCenter.Application/ # 應用層介面與 DTO │ ├── MemberCenter.Infrastructure/# EF Core、Identity、OpenIddict、服務實作 │ └── MemberCenter.Domain/ # 領域實體與常數 ├── docs/ # 專案文件 ├── .vscode/ # 本機開發啟動與工作設定 ├── MemberCenter.sln # Solution └── README.md ``` ## 待確認事項 - OAuth2 scopes 與最小 claims(email/profile) - 事件系統選擇(Kafka/RabbitMQ/SNS+SQS) - 取消訂閱的 UI 形式(純一鍵或提供偏好) - GDPR/CCPA 資料匯出與刪除是否納入第一期