166 lines
4.0 KiB
Markdown
166 lines
4.0 KiB
Markdown
# 企微 H5 应用配置指南 (D-T4) - 完整版
|
||
|
||
## 前置条件
|
||
|
||
| 依赖 | 状态 | 说明 |
|
||
|------|------|------|
|
||
| GoFlyLiveChat 服务 | ✅ 已运行 | `http://10.90.5.110:8081` |
|
||
| SSL 证书 | ✅ 已有 | 使用 itsupport.servyou.com.cn 证书 |
|
||
| 企微 OAuth2 | ❌ 待开发 | 需要对接企微用户体系 |
|
||
|
||
---
|
||
|
||
## 整体架构
|
||
|
||
```
|
||
用户 → 企微工作台 → 应用 → HTTPS(itsupport.servyou.com.cn/gofly)
|
||
↓
|
||
Nginx反向代理
|
||
↓
|
||
GoFlyLiveChat:8081
|
||
↓
|
||
MySQL数据库
|
||
```
|
||
|
||
---
|
||
|
||
## 配置步骤
|
||
|
||
### 步骤1:Nginx 反向代理配置
|
||
|
||
在现有 Nginx 上添加 GoFlyLiveChat 路由(子路径):
|
||
|
||
```bash
|
||
# 在生产服务器(10.90.5.110)上执行
|
||
|
||
# 1. 创建 Nginx 配置
|
||
cat > /etc/nginx/conf.d/gofly.conf << 'EOF'
|
||
# GoFlyLiveChat 子路径代理
|
||
location /gofly {
|
||
proxy_pass http://127.0.0.1:8081;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||
proxy_set_header X-Forwarded-Proto $scheme;
|
||
|
||
# WebSocket 支持
|
||
proxy_http_version 1.1;
|
||
proxy_set_header Upgrade $http_upgrade;
|
||
proxy_set_header Connection "upgrade";
|
||
|
||
# 解决WebSocket子路径问题
|
||
proxy_redirect ~^/(.*)$ /gofly/$1;
|
||
}
|
||
|
||
# 根路径重定向到IT服务台
|
||
location = /gofly {
|
||
return 301 /gofly/;
|
||
}
|
||
EOF
|
||
|
||
# 2. 测试配置
|
||
nginx -t
|
||
|
||
# 3. 重载 Nginx
|
||
nginx -s reload
|
||
```
|
||
|
||
> ⚠️ 注意:GoFlyLiveChat 可能不支持子路径,需要使用独立子域名
|
||
|
||
---
|
||
|
||
### 方案B:独立子域名(如需要)
|
||
|
||
如果GoFlyLiveChat不支持子路径,使用独立子域名:
|
||
|
||
```
|
||
https://itdesk.servyou.com.cn → IT服务台(H5)
|
||
https://itsupport.servyou.com.cn → 主域名(现有)
|
||
https://chat.servyou.com.cn → GoFlyLiveChat(新申请)
|
||
```
|
||
|
||
---
|
||
|
||
### 步骤2:企微应用配置
|
||
|
||
1. 登录企微管理后台:https://work.weixin.qq.com
|
||
2. **应用管理** → **自建应用** → **创建应用**
|
||
|
||
| 字段 | 示例值 | 说明 |
|
||
|------|--------|------|
|
||
| 应用名称 | IT智能服务台 | 展示给用户 |
|
||
| 应用主页 | `https://itsupport.servyou.com.cn/gofly` | **必须HTTPS** |
|
||
| 可信域名 | `servyou.com.cn` | 用于OAuth2 |
|
||
|
||
3. **网页授权及JS-SDK** → 设置可信域名
|
||
4. **发布应用** → 设置可见范围
|
||
|
||
---
|
||
|
||
### 步骤3:企微 OAuth2 集成(开发任务)
|
||
|
||
GoFlyLiveChat 需要改造支持企微OAuth2:
|
||
|
||
#### 3.1 获取企微授权
|
||
|
||
用户访问应用时重定向到:
|
||
|
||
```
|
||
https://open.weixin.qq.com/connect/oauth2/authorize?
|
||
appid=CORP_ID&
|
||
redirect_uri=URL-encoded(https://itsupport.servyou.com.cn/gofly/callback)&
|
||
response_type=code&
|
||
scope=snsapi_base&
|
||
state=STATE#
|
||
wechat_redirect
|
||
```
|
||
|
||
#### 3.2 回调处理
|
||
|
||
```python
|
||
# 获取用户身份
|
||
code = request.GET.get('code')
|
||
# 调用企微接口获取用户ID
|
||
user_id = wecom_api.get_user_id(code)
|
||
# 创建/更新用户会话
|
||
```
|
||
|
||
#### 3.3 与现有系统对接
|
||
|
||
| 现有系统 | 对接方式 |
|
||
|----------|----------|
|
||
| 用户表 | 通过企微user_id关联 |
|
||
| 角色体系 | 映射企微部门到角色 |
|
||
| 会话管理 | 使用现有session或JWT |
|
||
|
||
---
|
||
|
||
## 完整配置清单
|
||
|
||
| 序号 | 任务 | 负责人 | 状态 |
|
||
|------|------|--------|------|
|
||
| 1 | Nginx 配置 /gofly 路由 | 运维 | ⏳ |
|
||
| 2 | 测试子路径访问 | 工程师 | ⏳ |
|
||
| 3 | 企微创建自建应用 | 运维 | ⏳ |
|
||
| 4 | 开发 OAuth2 集成代码 | 工程师 | ⏳ |
|
||
| 5 | 测试完整流程 | QA | ⏳ |
|
||
|
||
---
|
||
|
||
## 访问地址
|
||
|
||
| 环境 | 地址 | 说明 |
|
||
|------|------|------|
|
||
| 测试 | `http://10.90.5.110:8081` | 已运行 |
|
||
| 生产 | `https://itsupport.servyou.com.cn/gofly` | 需配置Nginx |
|
||
|
||
---
|
||
|
||
## 验证清单
|
||
|
||
- [ ] Nginx /gofly 路由配置生效
|
||
- [ ] HTTPS 访问正常
|
||
- [ ] GoFlyLiveChat 服务正常
|
||
- [ ] 企微应用可访问
|
||
- [ ] OAuth2 登录流程正常
|