You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
|
# EMS Node Login Server
|
|
|
|
|
|
|
|
|
|
|
|
这是 Java 后端核心接口的 Node.js 重写版本,放在 `server-node` 下独立运行。
|
|
|
|
|
|
|
|
|
|
|
|
## 已实现
|
|
|
|
|
|
|
|
|
|
|
|
- `POST /auth/login`
|
|
|
|
|
|
- `GET /auth/code`
|
|
|
|
|
|
- `POST /auth/logout`
|
|
|
|
|
|
- `GET /auth/tenant/list`
|
|
|
|
|
|
- `GET /system/user/getInfo`
|
|
|
|
|
|
- `GET /system/menu/getRouters`
|
|
|
|
|
|
- `/system/menu/**`
|
|
|
|
|
|
- `/system/user/**`
|
|
|
|
|
|
- `/system/role/**`
|
|
|
|
|
|
- `/system/dept/**`
|
|
|
|
|
|
- `/system/post/**`
|
|
|
|
|
|
- `/system/dict/type/**`
|
|
|
|
|
|
- `/system/dict/data/**`
|
|
|
|
|
|
- `/system/config/**`
|
|
|
|
|
|
- `/system/notice/**`
|
|
|
|
|
|
- `/system/client/**`
|
|
|
|
|
|
- `/system/tenant/**`
|
|
|
|
|
|
- `/system/tenant/package/**`
|
|
|
|
|
|
- `/system/social/list`
|
|
|
|
|
|
- `/resource/oss/**`
|
|
|
|
|
|
- `/resource/oss/config/**`
|
|
|
|
|
|
- `/resource/sse/close`
|
|
|
|
|
|
- `/monitor/cache/**`
|
|
|
|
|
|
- `/monitor/operlog/**`
|
|
|
|
|
|
- `/monitor/logininfor/**`
|
|
|
|
|
|
- `/monitor/online/**`
|
|
|
|
|
|
- `/demo/demo/**`
|
|
|
|
|
|
- `/demo/tree/**`
|
|
|
|
|
|
- `/workflow/category/**`
|
|
|
|
|
|
- `/workflow/spel/**`
|
|
|
|
|
|
- `/workflow/leave/**`
|
|
|
|
|
|
- `/workflow/definition/**`
|
|
|
|
|
|
- `/workflow/instance/**`
|
|
|
|
|
|
- `/workflow/task/**`
|
|
|
|
|
|
- `/tool/gen/**`
|
|
|
|
|
|
- `GET /health`
|
|
|
|
|
|
|
|
|
|
|
|
登录接口兼容 Java 返回结构:
|
|
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
|
{
|
|
|
|
|
|
"code": 200,
|
|
|
|
|
|
"msg": "操作成功",
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"access_token": "...",
|
|
|
|
|
|
"refresh_token": null,
|
|
|
|
|
|
"expire_in": 604800,
|
|
|
|
|
|
"refresh_expire_in": null,
|
|
|
|
|
|
"client_id": "...",
|
|
|
|
|
|
"scope": null,
|
|
|
|
|
|
"openid": null
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 运行
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
yarn install
|
|
|
|
|
|
yarn start
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
默认端口:`3000`。
|
|
|
|
|
|
|
|
|
|
|
|
默认数据库名:`scrin_ems`。如果云数据库使用其他库名,修改 `.env` 中的 `DB_NAME`。
|
|
|
|
|
|
|
|
|
|
|
|
## 请求示例
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
curl -X POST http://localhost:3000/auth/login \
|
|
|
|
|
|
-H 'Content-Type: application/json' \
|
|
|
|
|
|
-d '{
|
|
|
|
|
|
"tenantId": "000000",
|
|
|
|
|
|
"clientId": "e5cd7e4891bf95d1d19206ce24a7b32e",
|
|
|
|
|
|
"grantType": "password",
|
|
|
|
|
|
"username": "admin",
|
|
|
|
|
|
"password": "admin123"
|
|
|
|
|
|
}'
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 注意
|
|
|
|
|
|
|
|
|
|
|
|
- 当前只实现 `grantType=password`。
|
|
|
|
|
|
- `/auth/code` 已实现数学验证码,验证码答案保存在 Node 进程内 TTL 缓存中;多实例部署时建议改成 Redis。
|
|
|
|
|
|
- Java 原版使用 Sa-Token;此版本使用 JWT,所以后续 Node 接口可直接验证 JWT,但 Java 原接口不会自动识别这个 token。
|
|
|
|
|
|
- `/system/user/getInfo`、`/system/menu/getRouters` 和 `ui/src/api/system` 中声明的系统管理接口已按前端当前调用路径实现,读取 `Authorization: Bearer <token>`。
|
|
|
|
|
|
- 导出类接口当前返回空文件占位,头像上传和 OSS 文件下载仍是基础占位实现;如果要生产使用,需要继续接入实际文件存储和 Excel 导出。
|
|
|
|
|
|
- 服务启动时会先执行 `select 1` 验证数据库连接;连接成功后才监听端口,并每 30 秒执行一次数据库心跳保持连接池活跃。
|
|
|
|
|
|
- 工作流模块当前覆盖前端接口路径和基础数据表读写;流程启动、办理、驳回等 WarmFlow 引擎内部流转为轻量占位实现。
|
|
|
|
|
|
- `.env` 存放真实数据库配置,已被 `.gitignore` 忽略。
|