閥門獸(valvemon) ,『完全體』,用來裝載數碼寶貝,運送到指定地點。
『有關會員系統都在這邊』,這也用來裝載我們的所有會員。
Go to file
王性驊 714163bbe6 chore: add readme md 2025-02-08 14:07:13 +08:00
build feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
etc feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
generate/protobuf feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
internal feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
pkg feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
.gitignore feat: init project 2024-12-30 11:58:14 +08:00
.golangci.yaml feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
Makefile feat: init project 2024-12-30 11:58:14 +08:00
docker-compose.yml feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
go.mod feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
member.go feature/rename_package (#1) 2025-02-08 02:23:54 +00:00
readme.md chore: add readme md 2025-02-08 14:06:19 +08:00

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

本地開發

  1. 克隆專案:

    git clone git@git.30cm.net:digimon/app-cloudep-member-server.git
    cd app-cloudep-member-server
    
  2. 複製範例設定檔並根據需求修改:

    cp etc/member.example.yaml etc/member.yaml
    
  3. 執行會員服務:

     go mod tidy
     go run member.go
    

設定

etc/member.yaml 是會員服務的主要設定檔,關鍵設定包括:

  • ListenOn: The address and port the service listens on
  • Etcd: Configuration for Etcd connection
  • Cache: Redis cache configuration
  • Mongo: MongoDB connection details
  • Bcrypt: Password hashing cost
  • GoogleAuth: Google authentication settings
  • LineAuth: LINE authentication settings

Ensure all configuration values are set correctly before starting the service.

Make

  1. To run the test suite:
make test
  1. Golint and sort import
make fmt
  1. 格式化與 lint
make fmt
  1. 產生 mock.
make mock-gen
  1. 產生 rpc data(有改io的話).
make gen-rpc