django-sspanel 的第三方中间件 ,方便实现内部 VPN 系统和外部 OA 等系统对接
基于 django-sspanel Feb 2, 2021 版本开发,不同版本可能需要微调代码
- 安装 Chrome (里面用到了 Headless Chrome)
- 安装配置 postgresql
- 填写 config.ini 信息
- ./vpnHelper gt 生成授权 token
- ./vpnHelper r 生产环境运行(可以用 nohup 或 screen 挂后台,注意运行时需要使路径在项目目录内)
- 新增用户
- 获取连接信息(导入URL)
- 删除用户
地址:
/v1/generateUserProfile请求方法:
POSTContent-Type:
form-data参数(Body内):
参数名称 | 参数示例 | 参数说明 |
---|---|---|
token | 12345678901234567890123456789012 | 授权 Token ,判断是否为可信用户,长度为 32 位 |
username | luckykeeper | 作为接入系统的用户名,此值在系统内须唯一 |
返回:
接口会返回一个 json ,返回的参数如下
参数名称 | 参数示例 | 参数说明 |
---|---|---|
StatusCode | 200 | 状态码,表示某项操作执行的状态 |
StatusString | 提交新增用户任务成功! | 对状态码进行说明 |
以下是一个返回示例,返回时用 HTTP 状态码判断是否成功提交到 API 服务器,用 StatusCode
判断操作执行的状态
{
"StatusCode": 200,
"StatusString": "提交新增用户任务成功!"
}
状态码速查表:
状态码(StatusCode) | 状态码说明(StatusString) | 说明 |
---|---|---|
102 | 该新增用户数据已提交至系统,并且正在处理中,请等待 | 成功向 API 提交了新增该用户的请求,且该用户的新增流程正在进行,但是仍未完成 |
200 | 提交新增用户任务成功! | 成功向 API 提交了新增该用户的请求 |
201 | 该新增用户数据已提交至系统,正在排队处理中,请等待 | 成功向 API 提交了新增该用户的请求,但是尚未开始该用户的新增流程 |
401 | Unauthorized Token | 授权 Token 错误 |
405 | 用户数据已经存在于系统内,不允许重复提交! | 成功向 API 提交了新增该用户的请求,但是该用户早已在系统内,并且已经走完了新增流程(用户是由 API 创建的) |
406 | Not Acceptable | 操作的是面板的管理员用户,不允许操作 |
409 | 用户数据已经存在于系统内,但是存在问题,请尝试发起删除用户流程后重新创建(重试) | 成功向 API 提交了新增该用户的请求,但是系统内已经存在该用户导致新增流程失败。可能原因①(用户不是由 API 创建的无法管理)②【极低概率】(API 新增用户时意外退出) |
418 | 用户数据正在删除,请等待删除操作完成。删除操作需要等待四十八小时后才会执行,请耐心等待 | 成功向 API 提交了新增该用户的请求,但是该用户已经通过删除用户接口进行了标记删除,由于管理面板限制,刚创建的用户不允许立刻删除。另外出于防止误操作考虑,提交请求后最快四十八小时后才会执行删除用户流程 |
429 | 服务请求过于频繁,请稍后再试 | 同时向 API 服务器提交的请求过多 |
500 | 用户数据删除请求已提交满四十八小时,但是API尝试删除用户失败,这是由于系统内尚未刷新该数据允许删除,API会自动重试直到系统允许删除,请等待 | 成功向 API 提交了新增该用户的请求,但是该用户已经通过删除用户接口进行了标记删除,由于管理面板后台数据尚未刷新,该数据仍未删除,继续等待直到管理面板允许删除 |
地址:
/v1/getConnInfoByUser请求方法:
POSTContent-Type:
form-data参数(Body内):
参数名称 | 参数示例 | 参数说明 |
---|---|---|
token | 12345678901234567890123456789012 | 授权 Token ,判断是否为可信用户,长度为 32 位 |
username | luckykeeper | 作为接入系统的用户名,此值在系统内须唯一 |
返回:
此返回中敏感信息已做处理!
接口会返回一个 json ,返回的参数如下
参数名称 | 参数示例 | 参数说明 |
---|---|---|
ResultMsg | 操作状态 | |
StatusCode | 200 | 状态码,表示某项操作执行的状态 |
StatusString | 提交新增用户任务成功! | 对状态码进行说明 |
NodeInfos | 节点信息,可包含多个节点 | |
Sequence | 1 | 顺序 |
Name | 服务节点1 | 服务节点名称 |
NodeType | ss | 节点类型,可为:ss ,vless ,trojan 。三种之一 |
Tips | 服务节点1 | 对服务节点的说明 |
Ip | 127.0.0.1 | 服务节点IP |
Method | aes-256-gcm | 加密方法 |
Port | 123 | 服务端口 |
ConnInfo | ss://** | 连接信息,用户使用该链接即可连接(PC)。或扫描此链接直接生成的二维码连接(移动端) |
以下是一个返回示例,返回时用 HTTP 状态码判断是否成功提交到 API 服务器,用 StatusCode
判断操作执行的状态
{
"ResultMsg": [
{
"StatusCode": 200,
"StatusString": "查询成功!"
}
],
"NodeInfos": [
{
"Sequence": "1",
"Name": "服务节点1",
"NodeType": "ss",
"Tips": "服务节点1",
"Ip": "127.0.0.1",
"Method": "****",
"Port": "123",
"ConnInfo": "ss://**"
},
{
"Sequence": "2",
"Name": "服务节点2",
"NodeType": "ss",
"Tips": "服务节点2",
"Ip": "127.0.0.1",
"Method": "****",
"Port": "123",
"ConnInfo": "ss://**"
}
]
}
状态码速查表:
状态码(StatusCode) | 状态码说明(StatusString) | 说明 |
---|---|---|
102 | 该新增用户数据已提交至系统,并且正在处理中,请等待 | 成功向 API 提交了新增该用户的请求,且该用户的新增流程正在进行,但是仍未完成,无法获取连接信息 |
200 | 查询成功! | 操作正常完成 |
201 | 该新增用户数据已提交至系统,正在排队处理中,请等待 | 成功向 API 提交了新增该用户的请求,但是尚未开始该用户的新增流程,无法获取连接信息 |
204 | 该用户不存在,无法获取连接信息 | 需要先去调用新增用户接口后再获取信息 |
401 | Unauthorized Token | 授权 Token 错误 |
406 | Not Acceptable | 操作的是面板的管理员用户,不允许操作 |
409 | 用户数据已经存在于系统内,但是存在问题,请尝试发起删除用户流程后重新创建(重试) | 成功向 API 提交了新增该用户的请求,但是系统内已经存在该用户导致新增流程失败。可能原因①(用户不是由 API 创建的无法管理)②【极低概率】(API 新增用户时意外退出) |
412 | 系统内没有节点或 API 还未拉取节点信息,请稍后再试 | |
418 | 用户数据正在删除,不允许获取连接信息 | 已经标记删除的用户不允许获取连接信息 |
地址:
/v1/delUserProfile请求方法:
POSTContent-Type:
form-data参数(Body内):
参数名称 | 参数示例 | 参数说明 |
---|---|---|
token | 12345678901234567890123456789012 | 授权 Token ,判断是否为可信用户,长度为 32 位 |
username | luckykeeper | 作为接入系统的用户名,此值在系统内须唯一 |
返回:
返回中敏感信息已做处理!
接口会返回一个 json ,返回的参数如下
参数名称 | 参数示例 | 参数说明 |
---|---|---|
StatusCode | 200 | 状态码,表示某项操作执行的状态 |
StatusString | 系统已收到删除用户:*** 的请求,已处理 | 对状态码进行说明 |
以下是一个返回示例,返回时用 HTTP 状态码判断是否成功提交到 API 服务器,用 StatusCode
判断操作执行的状态
{
"StatusCode": 200,
"StatusString": "系统已收到删除用户:*** 的请求,已处理"
}
状态码速查表:
状态码(StatusCode) | 状态码说明(StatusString) | 说明 |
---|---|---|
102 | 该新增用户数据已提交至系统,并且正在处理中,请等待 | 成功向 API 提交了新增该用户的请求,且该用户的新增流程正在进行,但是仍未完成,不允许删除 |
200 | 系统已收到删除用户:user.UserName 的请求,已处理 | 成功向 API 提交了删除该用户的请求 |
200 | 系统已收到删除可能存在问题的用户:user.UserName 的请求,已处理 | 成功向 API 提交了删除该用户的请求 |
201 | 该新增用户数据已提交至系统,正在排队处理中,请等待 | 成功向 API 提交了新增该用户的请求,但是尚未开始该用户的新增流程,不允许删除 |
401 | Unauthorized Token | 授权 Token 错误 |
404 | 系统内没有该用户记录! | 成功向 API 提交了删除该用户的请求,但是API数据库内找不到该用户记录 |
406 | Not Acceptable | 操作的是面板的管理员用户,不允许操作 |
409 | 用户数据已经存在于系统内,但是存在问题,请尝试发起删除用户流程后重新创建(重试) | 成功向 API 提交了新增该用户的请求,但是系统内已经存在该用户导致新增流程失败。可能原因①(用户不是由 API 创建的无法管理)②【极低概率】(API 新增用户时意外退出) |
418 | 用户数据正在删除,请等待删除操作完成。删除操作需要等待四十八小时后才会执行,请耐心等待 | 成功向 API 提交了新增该用户的请求,但是该用户已经通过删除用户接口进行了标记删除,由于管理面板限制,刚创建的用户不允许立刻删除。另外出于防止误操作考虑,提交请求后最快四十八小时后才会执行删除用户流程 |
429 | 服务请求过于频繁,请稍后再试 | 同时向 API 服务器提交的请求过多 |
500 | 用户数据删除请求已提交满四十八小时,但是API尝试删除用户失败,这是由于系统内尚未刷新该数据允许删除,API会自动重试直到系统允许删除,请等待 | 成功向 API 提交了新增该用户的请求,但是该用户已经通过删除用户接口进行了标记删除,由于管理面板后台数据尚未刷新,该数据仍未删除,继续等待直到管理面板允许删除 |