Skip to content

JWT 认证

JWT 认证

验证签名并授权

通过验证用户提供的钱包签名,验证成功后生成 JWT Token 进行授权。

HTTP 请求

POST
/api/authorize

请求频率限制:

  • 建议不超过 3 次/秒

请求参数

名称 类型 必填 描述
userAddress string 用户钱包地址
signature string 钱包签名(十六进制格式)
isTermAccepted boolean 是否接受服务条款,必须为 true

请求示例

{
  "userAddress": "0xab7f6e97232d633689cf762989455cceb769587c69a9f09a23f537f5605f9e78",
  "signature": "77ac25a7a4e9c686447788d65e06366f11cc8d064fb2f8585bbce7b06cbd29b398f7b231cd4f838818688057236c9be2572b825d7d2b2d141594e7cffc98e40a1zTNoZKsgPhuhbBmPoAeD/D+135wtLJbw7luX1Nftd+M=",
  "isTermAccepted": true
}

响应字段说明

名称 类型 描述
token string JWT Token,用于后续 API 请求的认证
walletAddress string 钱包地址

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIweGFiN2Y2ZTk3MjMyZDYzMzY4OWNmNzYyOTg5NDU1Y2NlYjc2OTU4N2M2OWE5ZjA5YTIzZjUzN2Y1NjA1ZjllNzgiLCJpYXQiOjE3MDAwMDAwMDB9.xxx",
    "walletAddress": "0xab7f6e97232d633689cf762989455cceb769587c69a9f09a23f537f5605f9e78"
  }
}

使用 Token

获取到 Token 后,在后续的私有接口请求中,需要在请求头中携带:

Authorization: Bearer {token}
X-Wallet-Address: {walletAddress}

重要提示

  • Token 具有有效期,过期后需要重新获取
  • 前端使用 Token 时需要在前面加上 Bearer 前缀
  • isTermAccepted 必须为 true,否则无法授权
  • 签名验证失败会返回错误

错误响应

{
  "code": 10003,
  "message": "Invalid signature",
  "data": null
}
{
  "code": 10011,
  "message": "Terms not accepted",
  "data": null
}