使用刷新令牌

刷新令牌流程是一种更安全的 API 请求授权方式。您无需直接使用单个长期有效的凭据,而是将刷新令牌交换为短期有效的访问令牌。当访问令牌过期时,再次进行交换。

请注意,刷新令牌不能 单独用于授权 API 请求;必须先将其 交换为刷新令牌。

要使用此流程,请在 Admin → Developer 中创建令牌时选择 refresh token 选项。创建时,您将获得三个值:

  • Client ID – 标识您的集成

  • Client secret – 用于验证交换请求

  • Refresh token – 用于获取访问令牌

These credentials are shown once. 请复制并安全保存这三个值——Altium 不会存储这些值,您离开创建页面后也无法再次查看。请像保护密码一样保护刷新令牌和客户端密钥。

将刷新令牌交换为访问令牌

向 Altium Identity 令牌端点发送 POST 请求。

Token Endpoint

域

URL

Altium 365

https://auth.altium.com/connect/token

Altium 365 Gov Cloud

https://auth.365-gov.altium.com/connect/token

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}"

集成到您的应用程序中

长期运行的集成通常采用以下模式:

  1. 安全存储刷新令牌、客户端 ID 和客户端密钥(例如,使用环境变量或密钥管理器)。

  2. 启动时,调用令牌端点以获取新的访问令牌。

  3. 使用访问令牌发起 API 请求,并缓存该令牌直至其过期。

  4. 令牌过期时(HTTP 状态为 401 Unauthorized,或 GraphQL 响应中出现 200 OK 且错误代码为 AuthExpiredToken),再次交换刷新令牌以获取新的访问令牌。

刷新令牌将在创建时配置的有效期结束后过期(最长为 1 年)。刷新令牌过期后,您需要在“管理 → 开发者”中创建新的刷新令牌。

另请参阅

 

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
Contents
Contents