> ## 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.

# 身份验证

> API 密钥、用户访问令牌和作用域如何工作——适用于你自己的账户以及已连接的客户账户。

每个 Fluz API 请求都会在 `Authorization` 头中携带一个**用户访问令牌**。你如何获取该令牌取决于你正在操作哪个账户。

## 两条路径，同一个 API

<Columns cols={2}>
  <Card title="你自己的账户" icon="user">
    `API key` → `Your token`

    你的服务器用其应用程序 API 密钥交换获得一个限定到你 Fluz 账户作用域的令牌。
  </Card>

  <Card title="客户的账户" icon="users">
    `OAuth grant` → `Their token`

    客户授权你的应用，Fluz 返回一个限定到其账户作用域的令牌。
  </Card>
</Columns>

一旦你持有令牌，其余的 API 完全相同。你的令牌调用 `createVirtualCard` 会在你的钱包上创建卡；客户令牌调用 `createVirtualCard` 会在他们的钱包上创建。

## 路径 1 — 你自己的账户

1. 在控制台中创建一个应用，并复制其 `clientId` 和 `clientSecret`。
2. 从你的后端，使用你的 `clientId`、`clientSecret` 以及所需的作用域，调用 `https://oauth-service.fluzapp.com/graphql` 上的 `generateUserAccessToken`。
3. 将返回的 `accessToken` 作为 `Authorization: Bearer <token>` 附加在对事务图的每个请求上。

查看 [API credentials](/get-started/api-credentials) 获取完整示例。

## 路径 2 — 客户的账户

在你构建一个平台时使用此路径——例如代表你的用户发行卡片。

1. 将客户重定向至 Fluz 的 OAuth 授权 URL，携带你的 `clientId`、请求的作用域以及 `redirect_uri`。
2. 客户登录并授予你的作用域。
3. Fluz 重定向返回，并带有一个短期有效的授权 `code`。
4. 你的服务器使用该 code 和你的应用凭证调用 `generateUserAccessToken`，以换取一个限定到客户作用域的访问令牌。
5. 在到期前刷新限定到客户作用域的令牌，而无需再次提示客户。

完整演练见 [Build a platform](/build-a-platform)。

## 作用域（Scopes）

令牌携带一组明确的作用域。按能力常见的有：

| Area                | Scopes                                                                                                      |
| ------------------- | ----------------------------------------------------------------------------------------------------------- |
| Gift cards          | `LIST_OFFERS`, `PURCHASE_GIFTCARD`, `REVEAL_GIFTCARD`, `LIST_PURCHASES`                                     |
| Virtual cards       | `CREATE_VIRTUALCARD`, `REVEAL_VIRTUALCARD`, `EDIT_VIRTUALCARD`, `PCI_COMPLIANCE`, `CREATE_SHARE_LINK`       |
| Wallets & transfers | `MAKE_DEPOSIT`, `MAKE_WITHDRAWAL`, `MAKE_INTERNAL_TRANSFER`, `MAKE_PAYOUT_TRANSFER_SEND`, `QUERY_RECIPIENT` |
| Funding sources     | `LIST_PAYMENT`, `MANAGE_PAYMENT`                                                                            |
| Authorized users    | `MANAGE_SUBUSERS`, `VIEW_SUBUSERS`                                                                          |
| Approvals           | `LIST_APPROVALS`, `MANAGE_APPROVALS`                                                                        |
| Verification        | `VERIFY_KYC`, `REGISTER_BUSINESS`                                                                           |

只请求你所需的最小权限。每个作用域也有一个用于审批流程的 `REQUEST_*` 变体——参见 [Approvals & Requests](/features/approvals-and-requests)。当你需要更广泛的访问时，请铸造一个新令牌。

## 令牌生命周期

* **访问令牌：** 短期有效。在 `expiresIn` 到期前刷新。
* **OAuth 客户令牌：** 可通过 OAuth 服务刷新。
* **应用程序 `clientSecret`：** 在控制台轮换前一直有效。

<Warning>
  切勿将 `clientSecret` 发送到浏览器或移动端客户端。它可为你的账户铸造令牌；一旦泄露，等同于泄露你的凭证。
</Warning>

## 后续步骤

<CardGroup cols={2}>
  <Card title="获取你的 API 凭证" icon="key" href="/get-started/api-credentials">
    路径 1 的实践——为你自己的账户铸造令牌并发起一次调用。
  </Card>

  <Card title="构建一个平台" icon="users" href="/build-a-platform">
    路径 2 的实践——通过 OAuth 授权流程连接客户账户。
  </Card>
</CardGroup>
