用户认证
在 NovaStack 项目中,我们使用基于令牌的身份验证来确保 API 请求的安全性。
获取令牌
要获取身份验证令牌,请发送一个包含用户名和密码的 POST 请求到 /api/auth/login 端点。
请求示例
http
POST /api/auth/login HTTP/1.1
Host: example.com
Content-Type: application/json
{
"username": "user@example.com",
"password": "your_password",
"deviceId": "unique-device-id"
}响应示例
json
{
"code": 0,
"message": "登录成功",
"user": {
"id": 1,
"username": "user",
"email": "user@example.com"
},
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx",
"refreshToken": "refresh-token-value",
"expiresIn": 604800
}使用令牌
在后续的 API 请求中,您需要将获取到的令牌包含在 Cookie 中。
Cookie 设置
登录成功后,系统会自动设置以下 Cookie:
auth-token: 访问令牌(30分钟有效期)refresh-token: 刷新令牌(7天有效期)isAuth: 认证状态标识
手动使用令牌
如果需要手动设置请求头:
http
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx刷新令牌
当访问令牌过期时,系统会自动使用刷新令牌来获取新的访问令牌。刷新令牌通过 /api/auth/refresh 端点进行请求。
请求示例
http
POST /api/auth/refresh HTTP/1.1
Host: example.com响应示例
json
{
"code": 0,
"message": "Refresh successful"
}注销
要注销用户会话,请发送一个 POST 请求到 /api/auth/logout 端点,系统会清除所有认证相关的 Cookie。
请求示例
http
POST /api/auth/logout HTTP/1.1
Host: example.com
Content-Type: application/json
{
"deviceId": "unique-device-id"
}通过以上步骤,您可以安全地管理用户的认证状态并保护您的 API 资源。