cccb7cfc
tangwang
init
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# 项目结构说明
## 文件组织
```
shoplazza-oauth-backend/
├── app.py # 主应用入口
├── config.py # 配置管理
├── run.py # 启动脚本
├── requirements.txt # Python依赖
├── env_template.txt # 环境变量模板
├── README.md # 项目文档
├── PROJECT_STRUCTURE.md # 项目结构说明
├── middleware/
│ └── hmac_validator.py # HMAC验证中间件
└── routes/
├── auth.py # OAuth2.0认证路由
├── api.py # Shoplazza API调用
└── webhook.py # Webhook处理
```
## 核心组件
### 1. 配置管理 (config.py)
- 环境变量加载
- 应用配置管理
- 访问令牌存储
### 2. HMAC验证 (middleware/hmac_validator.py)
- OAuth请求HMAC验证
- Webhook签名验证
- 安全比较函数
### 3. 认证流程 (routes/auth.py)
- 应用安装处理
- OAuth回调处理
- 令牌交换和刷新
### 4. API调用 (routes/api.py)
- 客户数据获取
- 产品数据获取
- 订单数据获取
- 商店信息获取
### 5. Webhook处理 (routes/webhook.py)
- Webhook签名验证
- 事件处理逻辑
- 应用卸载处理
## 数据流
```
1. 商家安装应用
↓
2. 重定向到Shoplazza授权页面
↓
3. 商家确认授权
↓
4. Shoplazza回调应用
↓
5. HMAC验证
↓
6. 交换访问令牌
↓
7. 存储令牌
↓
8. 调用Shoplazza API
```
## 安全特性
- HMAC签名验证
- CSRF攻击防护
- 安全的令牌存储
- Webhook签名验证
- 环境变量配置管理
|