-
Notifications
You must be signed in to change notification settings - Fork 1
API ‐ 用户&鉴权相关API
lifegpc edited this page Feb 2, 2024
·
9 revisions
GET /api/user
参数名字 | 参数类型 | 可选 | 描述 |
---|---|---|---|
id |
int |
是 | 用户ID |
username |
string |
是 | 用户名 |
- 优先使用
id
查找用户,其次使用username
,如都未指定,则返回当前登录用户的信息。 - 返回类型
PUT /api/user
参数名字 | 参数类型 | 可选 | 描述 |
---|---|---|---|
name |
string |
否 | 用户名 |
password |
string |
否 | 明文密码 |
is_admin |
boolean |
是 | 是否设为管理员,默认为false (0 ) |
permissions |
int (UserPermission) |
是 | 用户权限,非管理员默认为无(0 ),管理员强制为全部 |
- 返回值为用户ID
PUT /api/token
参数名字 | 参数类型 | 可选 | 描述 |
---|---|---|---|
username |
string |
否 | 用户名 |
password |
string |
否 | base64编码的经过处理的密码 |
t |
int |
否 | 当前的时间戳,单位为ms |
set_cookie |
boolean |
是 | 是否使用Set-Cookie 设置Cookie,默认为false (0 ) |
http_only |
boolean |
是 | 设置Cookie的httpOnly 属性,默认为true (1 ) |
secure |
boolean |
是 | 设置Cookie的secure 属性,默认为false (0 ) |
client |
string |
是 | 客户端名字 |
device |
string |
是 | 设备名称,浏览器可使用浏览器名称和版本号 |
client_version |
string |
是 | 客户端版本号 |
client_platform |
string |
是 | 客户端平台,例如web , android , ios , windows , linux , macos 等。 |
- 返回新的Token信息。(返回类型)
- 该接口无需鉴权。
import pbkdf2Hmac from "pbkdf2-hmac";
const password = "PASSWORD";
// 当前的时间戳,需要包含在请求中
const t = (new Date()).getTime();
const p = new Uint8Array(await pbkdf2Hmac(password, "eh-downloader-salt", 210000, 64, "SHA-512"));
// 经过处理的密码
const p2 = new Uint8Array(await pbkdf2Hmac(p, t.toString(), 1000, 64, "SHA-512"));
GET /api/token
参数名字 | 参数类型 | 可选 | 描述 |
---|---|---|---|
token |
string |
是 | Token |
- 若未指定,将使用鉴权使用的token。
DELETE /api/token
参数名字 | 参数类型 | 可选 | 描述 |
---|---|---|---|
token |
string |
是 | Token |
- 若未指定,将使用鉴权使用的token。
例如token为1234
# 通过Cookie鉴权
curl "$hostname/api/user" -H "Cookie: token=1234"
# 通过HTTP自定义头部鉴权
curl "$hostname/api/user" -H "X-Token: 1234"