|
||
---|---|---|
build | ||
etc | ||
generate/protobuf | ||
internal | ||
pkg | ||
.gitignore | ||
.golangci.yaml | ||
Makefile | ||
docker-compose.yml | ||
go.mod | ||
member.go | ||
readme.md |
readme.md
會員服務:用戶帳號管理系統
會員服務是一個完整的用戶帳號管理系統, 負責用戶身份驗證、帳號創建及個人資料管理。
此服務為需要用戶管理功能的應用程式提供穩健的後端,支援多種身份驗證方式,並可與外部服務整合。
本系統採用微服務架構,利用 MongoDB 作為資料存儲、Redis 作為快取,並使用 Etcd 進行分散式配置管理。其功能涵蓋用戶註冊、帳號綁定、個人資料管理,以及支援 Google 和 LINE 等第三方身份驗證服務。
核心功能
- 用戶帳號的建立與管理
- 多種身份驗證方式(Email、手機、Google、LINE)
- 跨平台帳號綁定
- 用戶個人資料管理
- 生成及驗證 綁定以及忘記密碼的 code
- 可擴展的微服務架構
- 整合 MongoDB、Redis 和 Etcd
- 支援 Docker 進行部署與擴展
Repository Structure
.
├── docker-compose.yml
├── etc/
│ ├── member.example.yaml
│ └── member.yaml
├── internal/
│ ├── config/
│ ├── logic/account/
│ ├── server/account/
│ └── svc/
├── member.go
├── pkg/
│ ├── domain/
│ ├── mock/
│ ├── repository/
│ └── usecase/
└── readme.md
主要檔案與目錄:
docker-compose.yml
:定義多容器 Docker 環境etc/member.yaml
:會員服務的設定檔internal/
:內部應用程式代碼logic/account/
:帳號相關的業務邏輯server/account/
:帳號服務的 gRPC 伺服器實作
pkg/
:可重複使用的程式碼模組domain/
:const、interface、error code、redis key 等定義repository/
:資料存取層的實作usecase/
:使用案例實作
member.go
:會員服務的主要進入點
使用說明
先決條件
- Go 1.23.1 或更新版本
- Docker 及 Docker Compose
- MongoDB 8.0
- Etcd 3.5.5
- Redis 7.0
安裝依賴項目
go install github.com/zeromicro/go-zero/tools/goctl@latest // goctl 安裝
go install golang.org/x/tools/cmd/goimports@latest
# binary will be $(go env GOPATH)/bin/golangci-lint
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.63.4
golangci-lint --version
本地開發
-
克隆專案:
git clone git@git.30cm.net:digimon/app-cloudep-member-server.git cd app-cloudep-member-server
-
複製範例設定檔並根據需求修改:
cp etc/member.example.yaml etc/member.yaml
-
執行會員服務:
go mod tidy go run member.go
設定
etc/member.yaml 是會員服務的主要設定檔,關鍵設定包括:
ListenOn
: The address and port the service listens onEtcd
: Configuration for Etcd connectionCache
: Redis cache configurationMongo
: MongoDB connection detailsBcrypt
: Password hashing costGoogleAuth
: Google authentication settingsLineAuth
: LINE authentication settings
Ensure all configuration values are set correctly before starting the service.
Make
- To run the test suite:
make test
- Golint and sort import
make fmt
- 格式化與 lint
make fmt
- 產生 mock.
make mock-gen
- 產生 rpc data(有改io的話).
make gen-rpc