[ PROMPT_NODE_27046 ]
Protocolsio Integration 认证
[ SKILL_DOCUMENTATION ]
# Protocols.io 身份验证
## 概述
protocols.io API 支持两种类型的访问令牌进行身份验证,从而实现对公开和私有内容的访问。
## 访问令牌类型
### 1. CLIENT_ACCESS_TOKEN
- **目的**:允许访问公开内容以及客户端用户的私有内容
- **使用场景**:访问您自己的协议和公开协议时
- **范围**:仅限于令牌所有者的私有内容加上所有公开内容
### 2. OAUTH_ACCESS_TOKEN
- **目的**:授予对特定用户私有内容以及所有公开内容的访问权限
- **使用场景**:构建需要经用户许可访问其内容的应用程序时
- **范围**:完全访问授权用户的私有内容加上所有公开内容
## 身份验证请求头
所有 API 请求必须包含 Authorization 请求头:
Authorization: Bearer [ACCESS_TOKEN]
## OAuth 流程
### 第一步:生成授权链接
引导用户访问授权 URL 以授予访问权限:
GET https://protocols.io/api/v3/oauth/authorize
**参数:**
- `client_id` (必需):您的应用程序客户端 ID
- `redirect_uri` (必需):授权后重定向用户的 URL
- `response_type` (必需):设置为 "code"
- `state` (可选但推荐):用于防止 CSRF 攻击的随机字符串
**示例:**
https://protocols.io/api/v3/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&state=RANDOM_STRING
### 第二步:使用授权码交换令牌
用户授权后,protocols.io 会将用户重定向到您的 `redirect_uri` 并附带授权码。使用此代码交换访问令牌:
POST https://protocols.io/api/v3/oauth/token
**参数:**
- `grant_type`: 设置为 "authorization_code"
- `code`: 收到的授权码
- `client_id`: 您的应用程序客户端 ID
- `client_secret`: 您的应用程序客户端密钥
- `redirect_uri`: 必须与第一步中使用的 redirect_uri 匹配
**响应包含:**
- `access_token`: 用于 API 请求的 OAuth 访问令牌
- `token_type`: "Bearer"
- `expires_in`: 令牌有效期(秒,通常为 1 年)
- `refresh_token`: 用于刷新访问令牌的令牌
### 第三步:刷新访问令牌
在访问令牌过期(通常为 1 年)之前,使用刷新令牌获取新的访问令牌:
POST https://protocols.io/api/v3/oauth/token
**参数:**
- `grant_type`: 设置为 "refresh_token"
- `refresh_toke