JWT 认证

JWT 认证

JWT(JSON Web Token)是 M-Doc 的主要用户认证方式,适用于前端 Web 应用。


注册

POST /api/auth/register
Content-Type: application/json

{
  "username": "your-username",
  "email": "user@example.com",
  "password": "your-password"
}

响应

{
  "code": 200,
  "message": "注册成功",
  "data": {
    "token": "eyJhbGciOi...",
    "user": {
      "id": 1,
      "username": "your-username",
      "email": "user@example.com"
    }
  }
}

登录

POST /api/auth/login
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "your-password"
}

响应与注册接口相同,返回 JWT Token。

使用 Token

在后续请求中通过 Authorization 请求头传递 Token:

curl -H "Authorization: Bearer eyJhbGciOi..." \
  https://your-domain.com/api/auth/me

Token 说明

属性
格式 JWT(HS256 签名)
有效期 默认 7 天(可通过 jwt.expire_hours 配置)
存储位置 前端存储在 Cookie 中(支持 SSR)

Token 过期后需重新登录获取新 Token。

获取当前用户

GET /api/auth/me
Authorization: Bearer <token>

响应

{
  "code": 200,
  "message": "成功",
  "data": {
    "id": 1,
    "username": "your-username",
    "email": "user@example.com",
    "avatar_url": "https://..."
  }
}

适用路由

JWT 认证适用于所有 /api/* 前缀的路由。部分路由使用可选认证(OptionalAuthMiddleware),即未登录用户也可访问,但功能受限。