Sử dụng Refresh Token
Luồng refresh token là một cách an toàn hơn để ủy quyền các yêu cầu API. Thay vì dùng trực tiếp một thông tin xác thực duy nhất có vòng đời dài, bạn trao đổi một refresh token để lấy một access token có vòng đời ngắn. Khi access token đó hết hạn, bạn thực hiện trao đổi lại.
Để dùng luồng này, hãy chọn tùy chọn refresh token khi tạo token trong Admin → Developer. Bạn sẽ nhận được ba giá trị tại thời điểm tạo:
-
Client ID – xác định integration của bạn
-
Client secret – xác thực yêu cầu trao đổi
-
Refresh token – được dùng để lấy access token
Trao đổi Refresh Token để lấy Access Token
Gửi một yêu cầu POST đến token endpoint của Altium Identity.
Token Endpoint
Realm |
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": "..."
}
Sử dụng access_token từ phản hồi để ủy quyền các yêu cầu API. expires_in được tính bằng giây và cho biết access token có hiệu lực trong bao lâu.
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}"
Tích hợp vào Ứng dụng của Bạn
Một mẫu điển hình cho các integration chạy dài hạn:
-
Lưu trữ an toàn refresh token, client ID và client secret (ví dụ: biến môi trường hoặc trình quản lý secrets).
-
Khi khởi động, gọi token endpoint để lấy một access token mới.
-
Sử dụng access token cho các yêu cầu API. Lưu trong bộ nhớ đệm cho đến khi nó hết hạn.
-
Khi hết hạn (
401 Unauthorized), trao đổi refresh token lần nữa để lấy access token mới.
Refresh token hết hạn sau khoảng thời gian sống được cấu hình khi tạo (tối đa 1 năm). Khi refresh token hết hạn, bạn sẽ cần tạo một token mới trong Admin → Developer.
Xem thêm