Auth(认证与授权)
POST /api/Auth/Login
描述: 用户登录。
请求体:
application/json
:LoginRequest
对象text/json
:LoginRequest
对象application/*+json
:LoginRequest
对象
响应: 200 OK
请求示例(passwordHash为密码计算的sh256值,全小写)
{
"username": "username",
"password": "passwordHash"
}
示例代码
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "<API Key>");
const raw = JSON.stringify({
"password": "<string>",
"username": "<string>"
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("//api/Auth/Login", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
返回示例
{
"success": true,
"token": {
"accessToken": "string",
"refreshToken": "string",
"expires": "2025-01-22T16:39:15.2904133+08:00"
}
}
POST /api/Auth/Logout
描述: 用户登出。
响应: 200 OK
POST /api/Auth/Register
描述: 用户注册。
请求体:
application/json
:RegisterRequest
对象text/json
:RegisterRequest
对象application/*+json
:RegisterRequest
对象
响应: 200 OK
请求示例(password为sha256值)
{
"username": "string",
"password": "string",
"email": "string"
}
返回示例
{
"success": true
}
POST /api/Auth/ChangePassword
描述: 修改密码。
请求体:
application/json
:ChangePasswordRequest
对象text/json
:ChangePasswordRequest
对象application/*+json
:ChangePasswordRequest
对象
响应: 200 OK
请求示例(password都为sha256值)
{
"oldPassword": "string",
"newPassword": "string"
}
示例代码
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "<API Key>");
const raw = JSON.stringify({
"newPassword": "<string>",
"oldPassword": "<string>"
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("//api/Auth/ChangePassword", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
返回示例
{
"success": true
}
GET /api/Auth/Refresh
描述: 刷新令牌。
响应: 200 OK
请求示例
请求头携带Bearer {refresh token} 发送GET请求
返回示例
{
"success": true,
"token": {
"accessToken": "string",
"refreshToken": "string",
"expires": "2025-01-22T16:39:15.2904133+08:00"
}
}
POST /api/Auth/ForgotPassword
描述: 忘记密码。
请求体:
application/json
:ForgotPasswordRequest
对象text/json
:ForgotPasswordRequest
对象application/*+json
:ForgotPasswordRequest
对象
响应: 200 OK
请求示例
{
"email": "string"
}
示例代码
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Authorization", "<API Key>");
const raw = JSON.stringify({
"email": "<string>"
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch("//api/Auth/ForgotPassword", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
GET api/Auth/Certificate
请求示例
api/Auth/Certificate?token=xxx
返回示例
{
"success": true
}
该接口用于验证忘记密码发送的邮件内的token是否有效
POST /api/Auth/Reset
描述: 重置用户密码。
请求体:
application/json
:ResetPasswordRequest
对象text/json
:ResetPasswordRequest
对象application/*+json
:ResetPasswordRequest
对象
请求体参数:
token
(string, required): 重置密码的令牌。newPassword
(string, required): 新密码。
newPassword为前端sha256小写值,请勿直接传输密码明文
响应:
200 OK: 密码重置成功。
400 Bad Request: 令牌无效或已过期。
404 Not Found: 用户不存在。
请求示例:
{ "token": "12345abcde", "newPassword": "newPassword123" }
示例代码:
const myHeaders = new Headers(); myHeaders.append("Content-Type", "application/json"); myHeaders.append("Authorization", "<API Key>"); const raw = JSON.stringify({ "token": "12345abcde", "newPassword": "newPassword123" }); const requestOptions = { method: "POST", headers: myHeaders, body: raw, redirect: "follow" }; fetch("/api/Auth/Reset", requestOptions) .then((response) => response.json()) .then((result) => console.log(result)) .catch((error) => console.error(error));
返回示例:
成功:
{ "success": true }
令牌无效或已过期:
{ "success": false, "message": "Token is invalid or has expired." }
用户不存在:
{ "success": false, "message": "User not found." }
接口逻辑说明
验证令牌:
从缓存中查找与
token
对应的用户信息。如果令牌无效或已过期,返回
400 Bad Request
。
查找用户:
根据缓存中的用户 ID 查找用户。
如果用户不存在,返回
404 Not Found
。
更新密码:
将用户密码更新为
newPassword
。清除缓存中的令牌。
返回结果:
如果密码重置成功,返回
200 OK
和{ success: true }
。
Last updated