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

扣子编程 API 通过访问令牌进行 API 请求的鉴权。
## 鉴权方式 {#94f7aaf7}
扣子编程 API 通过访问令牌（Access Token）进行 API 请求的鉴权。所有的 API 请求都必须在请求头的 **`Authorization`** 参数中包含你的访问令牌（Access Token）。
```Shell
Authorization: Bearer $Access_Token
```

其中，*`$Access_Token`* 分为以下三种：
<!-- @cols-width: 197,660 -->
| | | \
|**鉴权方式** |**说明** |
|---|---|
| | | \
|**个人访问令牌** |Personal Access Token，简称 PAT。扣子编程中生成的个人访问令牌。每个令牌可以关联多个空间，并开通指定的接口权限。生成方式可参考[添加个人访问令牌](/developer_guides/pat)。 |\
| |:::notice 注意 |\
| |虽然 PAT 生成和使用便捷，但其本质上是一种预授权的明文令牌。如果保管不当，极易导致令牌泄露，进而被黑灰产盗用，引发安全风险。 |\
| |建议仅在测试环境、调试场景中使用 PAT，并严格限制其使用范围和有效期。 |\
| |在生产环境中应谨慎使用 PAT，优先考虑更安全的认证方式 OAuth。 |\
| |::: |
| | | \
|**服务访问令牌** |Service Access Token（简称 SAT）是以服务身份创建的访问凭证，可长期有效访问扣子编程资源，通常用于服务/应用程序的身份验证和授权。SAT 与 OAuth JWT 鉴权方式相比，具有更长的有效期（可设置为永久有效），操作简单，能够有效简化授权流程。 |
| | | \
|**OAuth 访问令牌** |OAuth Access Token，通过 [OAuth 2.0 ](https://tools.ietf.org/html/rfc6749)鉴权方式生成的 OAuth 访问令牌。该鉴权方式通常用于应用程序的身份验证和授权，和 PAT 鉴权方式相比，令牌有效期短，安全性更高，适用于线上生产环境。 |\
| |扣子编程目前支持**授权码（Authorization Code Grant）、JWT 模式（JSON Web Tokens）**等多种 OAuth 授权类型，详细说明请参见下文中的[OAuth 授权方式说明](/developer_guides/authentication#8ccb46e5)。 |

你可以参考下图选择合适的鉴权方式。
![Image=700x497](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/c0a17e28700c465ca0fd9118eb9d93b9~tplv-goo7wpa0wc-image.image)
## OAuth 授权方式说明 {#8ccb46e5}
扣子编程 API 支持以下 OAuth 2.0 授权方式，提供标准的 OAuth 2.0 鉴权流程与方案，精细化的鉴权策略，便于开发者和渠道快速接入。OAuth 授权适用于应用程序以 API 方式集成扣子编程的某些功能，应用程序以扣子用户的身份调用扣子编程 API。
<!-- @cols-width: 163,220,252,227 -->
| | | | | \
|**授权方式** |**适用场景** |**应用设置** |**参考文档** |
|---|---|---|---|
| | | | | \
|授权码授权 |\
|（Authorization Code Flow） |有显著前后端之分的应用程序授权场景。前端模块负责与用户交互，后端服务处理前端请求，与扣子授权服务器和 OpenAPI 交互。 |* 应用类型：普通 |\
| | |* 客户端类型：Web 后端应用 |[OAuth 授权码授权](/developer_guides/oauth_code) |\
| | | |[OAuth 授权（多人协作场景）](/developer_guides/oauth_collaborate) |
| | | | | \
|PKCE 授权 |\
|（Authorization Code Flow with PKCE） |无后端服务的应用程序，所有操作发生在应用程序的前端。 |* 应用类型：普通 |\
| | |* 客户端类型：移动端/PC 桌面端/单页面应用 |[OAuth PKCE](/developer_guides/oauth_pkce) |\
| | | |[OAuth 授权（多人协作场景）](/developer_guides/oauth_collaborate) |
| | | | | \
|设备码授权 |\
|（Device Code Flow） |应用程序无后端服务，所有操作都发生在应用程序的 Command Line，且 Command Line 无法提供“同意授权”的操作。 |* 应用类型：普通 |\
| | |* 客户端类型：TV端/设备应用/类命令行程序 |[OAuth 设备授权](/developer_guides/oauth_device_code) |\
| | | |[OAuth 授权（多人协作场景）](/developer_guides/oauth_collaborate) |
| | | | | \
|JWT 授权 |\
|（JWT Flow） |应用程序服务端直接调用 Coze OpenAPI。 |* 应用类型：普通 |\
| | |* 客户端类型：服务类应用 |[OAuth JWT 授权（开发者）](/developer_guides/oauth_jwt) |
|^^| | | | \
| |第三方渠道中的应用程序后端服务代理其终端用户获取访问令牌，终端用户基于访问令牌直接访问扣子编程 OpenAPI。 |* 应用类型：渠道 |\
| | |* 客户端类型：服务类应用 |[OAuth JWT 授权（渠道场景）](/developer_guides/oauth_jwt_channel) |
|^^| | | | \
| |应用程序服务端获取企业级资源的访问令牌，统筹管理企业成员、账单、组织和工作空间。 |* 应用类型：企业特权应用 |\
| | |* 客户端类型：服务类应用 |[OAuth JWT 授权（企业特权应用）](/developer_guides/oauth_jwt_privilege) |

:::tip 说明
在扣子编程中，所有 OAuth 应用的相关操作，均可能存在数秒的延迟，这是由于系统设计为保证高可用和高性能引入的缓存机制导致，如果您发现操作未生效，请等待一段期间后重试。
:::
## 鉴权示例代码 {#93ff7ae5}
扣子编程提供了多语言的鉴权示例代码，包括个人访问令牌（PAT）和 OAuth 认证等多种鉴权方式，鉴权示例代码的地址如下表所示。您可以根据具体需求选择合适的示例代码，实现不同鉴权方式的集成。
<!-- @cols-width: 124,185,193,187,169 -->
| | | | | | \
| **授权方式**  | **Python**   | **Node.js** | **Java**  | **Go** |
|---|---|---|---|---|
| | | | | | \
| 个人访问令牌  |[examples/auth_pat.py](https://github.com/coze-dev/coze-py/blob/main/examples/auth_pat.py) |[auth/auth-pat.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-pat.ts) |[TokenAuthExample.java](https://github.com/coze-dev/coze-java/blob/main/example/src/main/java/example/auth/TokenAuthExample.java) |[pat_example.go](https://github.com/coze-dev/coze-go/blob/main/examples/auth/token/main.go) |
| | | | | | \
| OAuth 授权码  |[examples/auth_oauth_web.py](https://github.com/coze-dev/coze-py/blob/main/examples/auth_oauth_web.py) |[auth/auth-oauth-web.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-oauth-web.ts) |[WebOAuthExample.java](https://github.com/coze-dev/coze-java/blob/main/example/src/main/java/example/auth/WebOAuthExample.java) |[web_oauth_example.go](https://github.com/coze-dev/coze-go/blob/main/examples/auth/web_oauth/main.go) |
| | | | | | \
| OAuth JWT  |[examples/auth_oauth_jwt.py](https://github.com/coze-dev/coze-py/blob/main/examples/auth_oauth_jwt.py) |[auth/auth-oauth-jwt.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-oauth-jwt.ts) |\
| | |[auth/auth-oauth-jwt-channel.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-oauth-jwt-channel.ts) |[JWTsOauthExample.java](https://github.com/coze-dev/coze-java/blob/main/example/src/main/java/example/auth/JWTOAuthExample.java) |[jwt_example.go](https://github.com/coze-dev/coze-go/blob/main/examples/auth/jwt_oauth/main.go) |
| | | | | | \
| OAuth PKCE  |[examples/auth_oauth_pkce.py](https://github.com/coze-dev/coze-py/blob/main/examples/auth_oauth_pkce.py) |[auth/auth-oauth-pkce.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-oauth-pkce.ts) |[PKCEOauthExample.java](https://github.com/coze-dev/coze-java/blob/main/example/src/main/java/example/auth/PKCEOAuthExample.java) |[pkce_example.go](https://github.com/coze-dev/coze-go/blob/main/examples/auth/pkce_oauth/main.go) |
| | | | | | \
| OAuth 设备码  |[examples/auth_oauth_device.py](https://github.com/coze-dev/coze-py/blob/main/examples/auth_oauth_device.py) |[auth/auth-oauth-device.ts](https://github.com/coze-dev/coze-js/blob/main/examples/coze-js-node/src/auth/auth-oauth-device.ts) |[DeviceOAuthExample.java](https://github.com/coze-dev/coze-java/blob/main/example/src/main/java/example/auth/DeviceOAuthExample.java) |[device_example.go](https://github.com/coze-dev/coze-go/blob/main/examples/auth/device_oauth/main.go) |

你也可以在 **OAuth 应用**页面下载对应鉴权方式的示例代码。
![Image=700x479](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/9f234fe45349438283b9d1c7842c0cd9~tplv-goo7wpa0wc-image.image)
## 角色与权限说明 {#19640c75}
不同扣子套餐支持的鉴权方式，以及各角色的操作权限如下表所示。✔️ 表示具备权限，- 表示没有权限。
<!-- @cols-width: 240,171,164,123 -->
| | | || \
| |\
|**鉴权方式** |**个人版** |**企业版** |\
| | |**（企业标准版、企业旗舰版）** | |
|^^|^^| | | \
| | |**超级管理员、管理员** |**员工** |
|---|---|---|---|
| | | | | \
|个人访问令牌（PAT） |✔️ |✔️ |✔️ |
| | | | | \
|服务访问令牌（SAT） |✔️ |✔️ |\- |
| | | | | \
|OAuth 授权码授权 |✔️ |✔️ |\- |
| | | | | \
|OAuth PKCE |✔️ |✔️ |\- |
| | | | | \
|OAuth 设备授权 |✔️ |✔️ |\- |
| | | | | \
|OAuth 授权（多人协作） |\- |✔️ |\- |
| | | | | \
|OAuth JWT 授权（开发者） |✔️ |✔️ |\- |
| | | | | \
|OAuth JWT 授权（渠道） |✔️ |✔️ |\- |
| | | | | \
|OAuth JWT 授权（企业特权应用） |\- |✔️ |\- |

:::tip 说明
扣子企业版中的成员不支持创建组织级别的 OAuth 应用，仅超级管理员和管理员支持创建组织级别的 OAuth 应用。成员只支持创建个人版的 OAuth 应用。
:::
## 权限层级 {#fc1e1372}
扣子编程资源的权限点分为三个层级，各层级对应不同的生效范围，你可以在权限点右侧查看该权限点对应的层级。

::::cols
@col 50
权限层级查看入口
![Image=350x369](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/9d45710cc3af437685c83ff946305321~tplv-goo7wpa0wc-image.image)


@col 50
权限层级示意图
![Image=500x339](https://p9-arcosite.byteimg.com/tos-cn-i-goo7wpa0wc/b78111be6ddc408cbccb7dedfd051265~tplv-goo7wpa0wc-image.image)


::::


* **企业级别**：权限点的生效范围为整个企业，例如查询企业下的账单文件、管理设备的权益额度等。仅企业的超级管理员和管理员能被授权该级别的权限，扣子个人账号或企业中的员工不支持授权企业层级的权限点。
* **账号级别**：权限点的生效范围为当前账号。用户可通过 Access Token 管理账号下的会话、文件、音色等资源，例如查询当前账号下的所有会话。
* **工作空间级别**：权限点的生效范围为你创建或加入的工作空间，授权时需要设置该 Access Token 可访问的工作空间，以便管理该工作空间中的智能体、工作流、应用等资源，例如在工作空间中创建智能体。



