使用刷新令牌
刷新令牌流程是一种更安全的 API 请求授权方式。您无需直接使用单个长期有效的凭据,而是将刷新令牌交换为短期有效的访问令牌。当访问令牌过期时,再次进行交换。
请注意,刷新令牌不能 单独用于授权 API 请求;必须先将其 交换为刷新令牌。
要使用此流程,请在 Admin → Developer 中创建令牌时选择 refresh token 选项。创建时,您将获得三个值:
-
Client ID – 标识您的集成
-
Client secret – 用于验证交换请求
-
Refresh token – 用于获取访问令牌
将刷新令牌交换为访问令牌
向 Altium Identity 令牌端点发送 POST 请求。
Token Endpoint
域 |
URL |
Altium 365 |
|
Altium 365 Gov Cloud |
|
Request Body(application/x-www-form-urlencoded)
grant_type=refresh_token
refresh_token={refresh-token}
client_id={client-id}
client_secret={client-secret}
Response
{
"access_token": "...",
"expires_in": 14400,
"token_type": "Bearer",
"refresh_token": "...",
"scope": "..."
}
使用响应中的 access_token 来授权 API 请求。expires_in 以秒为单位,表示访问令牌的有效时长。
curl Example:
curl -X POST https://auth.altium.com/connect/token \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "grant_type=refresh_token" \
--data-urlencode "refresh_token={refresh-token}" \
--data-urlencode "client_id={client-id}" \
--data-urlencode "client_secret={client-secret}"
集成到您的应用程序中
长期运行的集成通常采用以下模式:
-
安全存储刷新令牌、客户端 ID 和客户端密钥(例如,使用环境变量或密钥管理器)。
-
启动时,调用令牌端点以获取新的访问令牌。
-
使用访问令牌发起 API 请求,并缓存该令牌直至其过期。
-
令牌过期时(HTTP 状态为
401 Unauthorized,或 GraphQL 响应中出现200 OK且错误代码为AuthExpiredToken),再次交换刷新令牌以获取新的访问令牌。
刷新令牌将在创建时配置的有效期结束后过期(最长为 1 年)。刷新令牌过期后,您需要在“管理 → 开发者”中创建新的刷新令牌。
另请参阅