rwadurian/backend/services/identity-service
hailin ff65cdf3c1 . 2025-11-24 03:26:09 -08:00
..
.claude . 2025-11-24 01:41:54 -08:00
database . 2025-11-24 07:25:33 +00:00
prisma . 2025-11-24 02:33:14 -08:00
scripts . 2025-11-24 03:26:09 -08:00
src . 2025-11-24 02:54:27 -08:00
test . 2025-11-24 03:21:24 -08:00
.env.development . 2025-11-24 07:25:33 +00:00
.env.example . 2025-11-24 07:25:33 +00:00
.env.production . 2025-11-24 07:25:33 +00:00
.env.test . 2025-11-24 02:19:40 -08:00
.eslintrc.js identity_service_context first commit 2025-11-24 06:09:06 +00:00
.gitignore identity_service_context first commit 2025-11-24 06:09:06 +00:00
.prettierrc identity_service_context first commit 2025-11-24 06:09:06 +00:00
AUTOMATED_TESTS_README.md . 2025-11-24 02:29:44 -08:00
DEPLOYMENT.md . 2025-11-24 17:06:30 +08:00
Dockerfile . 2025-11-24 08:27:36 +00:00
E2E_TEST_SETUP.md . 2025-11-24 02:19:40 -08:00
FIXES_APPLIED.md . 2025-11-24 01:41:54 -08:00
Identity_Service_Context_dir_Architecture.png first commit 2025-11-23 21:21:44 -08:00
README.md . 2025-11-24 06:58:46 +00:00
REMAINING_STEPS.md . 2025-11-24 01:48:17 -08:00
TEST-STRATEGY.md . 2025-11-24 03:21:24 -08:00
TESTING_GUIDE.md . 2025-11-24 01:59:58 -08:00
TESTING_STRATEGY.md . 2025-11-24 02:29:44 -08:00
TEST_AUTOMATION_GUIDE.md . 2025-11-24 01:59:58 -08:00
docker-compose.yml . 2025-11-24 07:25:33 +00:00
nest-cli.json . 2025-11-24 06:58:46 +00:00
package.json . 2025-11-24 02:31:30 -08:00
tsconfig.build.json identity_service_context first commit 2025-11-24 06:09:06 +00:00
tsconfig.json . 2025-11-24 06:58:46 +00:00
测试完成总结.md . 2025-11-24 02:29:44 -08:00

README.md

Identity Service

RWA用户身份上下文微服务 - 基于DDD架构的NestJS实现

技术栈

  • 框架: NestJS + TypeScript
  • ORM: Prisma
  • 消息队列: Kafka
  • 缓存: Redis (ioredis)
  • 区块链: ethers.js + @scure/bip32 + bech32

项目结构

src/
├── api/                    # 表现层
│   ├── controllers/        # 控制器
│   └── dto/               # 请求/响应DTO
├── application/           # 应用层
│   ├── commands/          # 命令对象
│   └── services/          # 应用服务
├── domain/                # 领域层
│   ├── aggregates/        # 聚合根
│   ├── entities/          # 实体
│   ├── events/            # 领域事件
│   ├── repositories/      # 仓储接口
│   ├── services/          # 领域服务
│   └── value-objects/     # 值对象
├── infrastructure/        # 基础设施层
│   ├── persistence/       # 持久化
│   ├── redis/            # Redis服务
│   ├── kafka/            # Kafka事件发布
│   └── external/         # 外部服务
├── shared/               # 共享层
│   ├── decorators/       # 装饰器
│   ├── guards/           # 守卫
│   ├── filters/          # 过滤器
│   └── exceptions/       # 异常类
└── config/               # 配置

核心功能

  • 用户账户自动创建(首次打开APP)
  • 多设备管理与授权(最多5个设备)
  • 三链钱包地址生成(KAVA/DST/BSC)
  • 助记词生成与加密存储
  • 序列号+助记词恢复账户
  • 序列号+手机号恢复账户
  • KYC实名认证
  • 推荐码生成与验证
  • Token自动刷新机制

快速开始

1. 安装依赖

npm install

2. 配置环境变量

cp .env.example .env
# 编辑 .env 文件配置数据库等信息

3. 初始化数据库

npm run prisma:generate
npm run prisma:migrate

4. 启动服务

# 开发模式
npm run start:dev

# 生产模式
npm run build
npm run start:prod

5. Docker部署

docker-compose up -d

API文档

启动服务后访问: http://localhost:3000/api/docs

主要API

方法 路径 说明
POST /user/auto-create 自动创建账户
POST /user/recover-by-mnemonic 助记词恢复
POST /user/recover-by-phone 手机号恢复
POST /user/auto-login 自动登录
GET /user/my-profile 我的资料
GET /user/my-devices 我的设备
POST /user/bind-phone 绑定手机号
POST /user/submit-kyc 提交KYC

领域不变式

  1. 手机号在系统内唯一(可为空)
  2. 账户序列号全局唯一且递增
  3. 每个账户最多5个设备同时登录
  4. KYC认证通过后身份信息不可修改
  5. 每个区块链地址只能绑定一个账户
  6. 推荐人序列号一旦设置终生不可修改
  7. 助记词必须加密存储,只在创建时返回一次
  8. 三条链的钱包地址必须从同一个助记词派生

License

Proprietary