> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 刷新已过期的访问令牌

当你当前的用户访问令牌过期时，使用随之一起收到的刷新令牌交换获取一个新的访问令牌——无需重新运行完整的凭证流程。

<Info>
  **你将需要：** 你的 `API Key`（在沙盒中使用你的 Test API Key）以及签发访问令牌时返回的 `Refresh Token`。
</Info>

<Steps>
  <Step title="调用 refreshUserAccessToken">
    将 `<YOUR_SANDBOX_API_KEY>` 和 `<YOUR_REFRESH_TOKEN>` 替换为你的凭证：

    ```bash theme={null}
    curl -X POST https://transactional-graph.staging.fluzapp.com/api/v1/graphql \
      -H "Authorization: Basic <YOUR_SANDBOX_API_KEY>" \
      -H "Content-Type: application/json" \
      -d '{
        "query": "mutation refreshUserAccessToken($refreshToken: String!) { refreshUserAccessToken(refreshToken: $refreshToken) { token refreshToken scopes } }",
        "variables": {
          "refreshToken": "<YOUR_REFRESH_TOKEN>"
        }
      }'
    ```
  </Step>

  <Step title="存储新令牌">
    响应包含一个新的访问令牌，其携带的权限范围与之前签发的令牌相同：

    ```json theme={null}
    {
      "data": {
        "refreshUserAccessToken": {
          "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
          "refreshToken": "0cb671d0b1aaa727c96874270cd15c2f",
          "scopes": ["LIST_PURCHASES", ...]
        }
      }
    }
    ```

    复制 `token` 的值，并像之前一样在经过身份验证的请求中将其用于 `Authorization: Bearer <YOUR_USER_ACCESS_TOKEN>` 标头。也请存储新的 `refreshToken`——你在下次刷新时还会用到它。
  </Step>
</Steps>

<Tip>
  主动在当前令牌过期之前进行刷新，而不是等待收到 `401` 后再被动刷新。这样可以避免在高负载下请求失败。
</Tip>

## 后续步骤

<Card title="快速开始：你的第一笔礼品卡购买" icon="gift" horizontal href="/quickstart">
  拿到有效令牌后，端到端跑通完整的快乐路径——存入资金、购买礼品卡，并在沙盒中进行展示。
</Card>
