Files
tongxunruanjian/account-service/README.md
T
KIMI 07f018c280 管理页新增:员工删除功能 + 直接选择 CSV 文件导入(不用复制粘贴)
- server.js 新增 POST /api/admin/delete:移除本地账号并逐平台 force_logout
- admin.html 员工行新增删除按钮(带确认);导入区新增选择文件导入,自动去 BOM
2026-08-09 00:54:52 +08:00

60 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 公司账号服务(account-service
内部通讯 app 的自研登录体系:替代 OpenIM 样板的注册登录(open-im-chatGPLv3,不用)。
- 员工账号只能由管理员开通:批量导入 / 单个添加 / 停用 / 启用 / 重置密码
- 员工用 **工号 + 密码** 登录;校验通过后,本服务向 OpenIM 换取 IM token 返回客户端
- 员工数据存在本地 JSON 文件(容器内 `/app/data/employees.json`,已挂卷),密码 scrypt 加盐哈希,不落明文
- 停用 = 本服务拒绝登录 + 调 OpenIM `force_logout` 踢掉各端在线连接
- 零 npm 依赖,Node 20 单文件服务
## 接口约定(供手机端 / PC 端对接)
### 员工登录(客户端调用)
```
POST /api/login
{ "staffNo": "10001", "password": "xxx", "platformID": 2 }
```
`platformID` 按端传:1 iOS、2 Android、3 Windows、4 macOS、5/10 Web(不传默认 10)。
成功:
```json
{ "code": 0, "msg": "", "data": { "userID": "10001", "nickname": "张三", "imToken": "<openim token>", "expireTimeSeconds": 7776000 } }
```
客户端拿到后用 `userID + imToken` 走 OpenIM SDK 登录;OpenIM 的 API 地址为 `http://<服务器IP>:10002`WebSocket 为 `ws://<服务器IP>:10001`
失败:`code != 0``msg` 为大白话原因(工号或密码错误 / 账号已停用,请联系管理员)。
### 管理接口(请求头带 `admin-token: <ACCOUNT_ADMIN_TOKEN>`
| 方法 | 路径 | 说明 |
| --- | --- | --- |
| GET | `/api/admin/employees` | 员工列表 |
| POST | `/api/admin/employees` | 添加 `{staffNo, name, password}` |
| POST | `/api/admin/import` | 批量导入 `{csv}`,每行 `工号,姓名,初始密码`(Tab 分隔也行,Excel 直接粘) |
| POST | `/api/admin/disable` | 停用 `{staffNo}`,立即无法登录并被踢下线 |
| POST | `/api/admin/enable` | 启用 `{staffNo}` |
| POST | `/api/admin/reset_password` | 重置密码 `{staffNo, password}` |
| POST | `/api/admin/delete` | 删除 `{staffNo}`,立即无法登录并被踢下线(OpenIM 侧同名用户保留但本服务不再为其签发令牌,等于不可用) |
管理页:浏览器打开 `http://<服务器IP>:10010/`,输入管理口令即可操作,无需写接口。
## 部署
已并入根目录 `docker-compose.yaml`(服务名 `account-server`),随整套环境一起起:
```bash
docker compose up -d --build account-server
```
相关环境变量(见 `.env.example`):
- `ACCOUNT_PORT`:宿主端口,默认 10010
- `ACCOUNT_ADMIN_TOKEN`:管理口令,**部署时务必改掉默认值**
重启/升级:改代码后 `docker compose up -d --build account-server`;数据在 `./data/account/employees.json`,重建容器不丢。