XNSim/XNSimHtml/README.md

89 lines
2.2 KiB
Markdown
Raw Normal View History

2025-04-28 12:25:20 +08:00
# XNSim 登录系统
这是一个与 C++动态库集成的登录系统,用于 XNSim 项目。
## 功能特点
- 美观的响应式登录界面
- 根据操作系统自动选择动态库类型和命名规则:
- Windows: `login.dll`
- Linux: `liblogin.so`(符合 Linux 动态库命名规范)
- 支持基于权限级别的用户角色系统
- 使用 Node.js 作为后端服务
## 环境要求
- Node.js 14.x 或更高版本
- 环境变量 `XNCore` 指向动态库所在的根目录(系统会在该目录的 lib 子目录中查找动态库)
## 安装步骤
1. 确保已设置环境变量 `XNCore`,指向包含动态库的根目录
```bash
# Linux/Mac
export XNCore=/path/to/xncore/directory
# Windows (CMD)
set XNCore=C:\path\to\xncore\directory
# Windows (PowerShell)
$env:XNCore = "C:\path\to\xncore\directory"
```
2. 确保在 `$XNCore/lib` 目录下存在相应的动态库文件:
- Windows: `login.dll`
- Linux: `liblogin.so`
3. 安装依赖
```bash
npm install
```
4. 启动服务器
```bash
npm start
```
5. 访问 http://localhost:3000 打开登录页面
## 登录 API
登录系统通过调用 `/api/login` 接口与 C++动态库交互。API 接收以下参数:
- `username`: 用户名
- `password`: 密码
- `remember`: 是否记住用户(布尔值)
API 响应包含以下信息:
- `success`: 登录是否成功(布尔值)
- `message`: 登录结果消息
- `permissionLevel`: 用户权限级别(整数,仅在登录成功时返回)
- `role`: 用户角色描述(字符串,仅在登录成功时返回)
## 权限级别
系统支持以下权限级别:
- 0: 访客
- 1: 普通用户
- 2: 高级用户
- 3: 管理员
- 4: 超级管理员
## 技术栈
- 前端: HTML, CSS, JavaScript
- 后端: Node.js, Express
- 外部库: ffi-napi (用于调用 C++动态库)
## 注意事项
- 确保动态库是由 C++编写的,并且包含`Login_validateUser`导出函数(对应 Login 类的 validateUser 静态方法)
- `Login_validateUser`函数接受两个字符串参数(用户名和密码),并返回整数表示权限级别(负值表示登录失败)
- 系统会根据操作系统类型在`$XNCore/lib`目录下查找相应类型的动态库,并遵循各操作系统的命名规范