Files
1818web-hoduan/docs/identity-verification-integration.md

141 lines
4.0 KiB
Markdown
Raw Normal View History

# 阿里云身份认证服务集成说明
## 功能概述
本项目已成功集成阿里云身份认证服务CloudAuth的身份证二要素核验功能实现用户实名认证。
**✅ 当前状态已启用真实的阿里云身份认证API调用新版SDK**
**🔧 最新更新:** 已修复 `MissingFaceImageUrl` 错误更新为官方推荐的新版SDK和正确的API接口。
## 实现的功能
### 1. 实名认证接口
- **端点**: `POST /user/identity/verify`
- **功能**: 用户提交身份证号码和真实姓名进行实名认证
- **认证流程**:
- 验证身份证号码和姓名格式
- 调用阿里云身份认证服务验证信息匹配性
- 验证通过后更新用户认证状态
### 2. 认证状态查询
- **端点**: `GET /user/identity/status`
- **功能**: 查询当前用户的实名认证状态和相关信息(脱敏后)
### 3. 认证状态检查
- **端点**: `GET /user/identity/check`
- **功能**: 简单检查当前用户是否已完成实名认证
## 数据库字段说明
用户表(`user`)中实名认证相关字段:
| 字段名 | 类型 | 说明 |
|--------|------|------|
| `real_username` | varchar(64) | 真实用户名 |
| `id_number` | varchar(18) | 身份证号码 |
| `is_verified` | tinyint | 是否实名认证 (0-未认证, 1-已认证) |
## 配置信息
### application.yml 配置
```yaml
aliyun:
cloudauth:
region: cn-hangzhou
endpoint: cloudauth.aliyuncs.com
# 直接从配置文件读取认证信息
access-key-id: LTAI5t68do3qVXx5Rufugt3X
access-key-secret: 2vD9ToIff49Vph4JQXsn0Cy8nXQfzA
connection-timeout: 10000
response-timeout: 10000
# 身份认证配置
biz-type: ID_2META
param-type: normal
```
### 配置说明
**直接配置文件读取方式**
- ✅ 所有配置直接在application.yml中管理
- ✅ 无需设置环境变量
- ✅ 配置集中统一,便于管理
## 当前实现状态
### 已实现
✅ 配置文件集成
✅ 数据库字段支持
✅ API接口完整实现
✅ DTO类和响应封装
✅ 用户认证状态管理
✅ 输入验证和异常处理
✅ 日志记录和监控
**真实阿里云CloudAuth SDK集成**
**真实身份证二要素验证**
**完整的错误处理和权限检查**
### 当前实现状态
**✅ 已完成真实阿里云API集成**:
1. **✅ 已启用阿里云SDK**: `pom.xml`中的阿里云CloudAuth依赖已启用
2. **✅ 已实现真实API调用**: `IdentityVerifyServiceImpl`中已集成真实的阿里云身份认证API
3. **✅ 已配置访问凭证**: 支持环境变量和配置文件两种方式配置AccessKey
### 重要提醒
**⚠️ 生产环境部署前请确认:**
1. **配置有效的阿里云AccessKey**: 确保具有CloudAuth服务权限
2. **验证网络连接**: 确保服务器能够访问阿里云API
3. **监控API调用**: 关注API调用成功率和响应时间
## API使用示例
### 提交实名认证
```bash
curl -X POST http://localhost:8081/user/identity/verify \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your_jwt_token" \
-d '{
"realName": "张三",
"idNumber": "110101199003077777"
}'
```
### 查询认证状态
```bash
curl -X GET http://localhost:8081/user/identity/status \
-H "Authorization: Bearer your_jwt_token"
```
## 安全特性
1. **JWT认证**: 所有接口都需要有效的JWT令牌
2. **数据脱敏**: 查询接口返回脱敏后的用户信息
3. **输入验证**: 严格的身份证号码和姓名格式验证
4. **异常处理**: 完善的错误处理和日志记录
5. **事务保证**: 认证过程使用数据库事务保证数据一致性
## 业务逻辑保护
- 已实名认证的用户不能重复认证
- 完整的输入参数验证
- 用户状态检查和权限控制
- 不破坏现有的用户管理和业务逻辑
## 扩展计划
1. 集成真实的阿里云CloudAuth SDK
2. 添加认证历史记录
3. 支持企业用户认证
4. 添加认证失败重试机制
5. 集成短信/邮件通知功能
---
*文档最后更新: 2024年8月31日*