會員平台(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:安裝、初始化與維運指令
專案結構
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 資料匯出與刪除是否納入第一期
Description
Languages
C#
91.4%
HTML
7%
Dockerfile
0.8%
CSS
0.7%
JavaScript
0.1%