Использование токена обновления

Авторизация с использованием токена обновления — более безопасный способ авторизации API-запросов. Вместо непосредственного использования одних и тех же долгосрочных учетных данных вы обмениваете токен обновления на краткосрочный токен доступа. Когда срок действия токена доступа истекает, вы повторяете обмен.

Обратите внимание: сам по себе токен обновления нельзя использовать для авторизации API-запросов; сначала его всегда необходимо обменять на токен обновления.

Чтобы использовать этот способ, выберите вариант refresh token при создании токена в Admin → Developer. При создании вы получите три значения:

  • Client ID – идентифицирует вашу интеграцию

  • Client secret – используется для аутентификации запроса на обмен

  • Refresh token – используется для получения токенов доступа

These credentials are shown once. Скопируйте все три значения и сохраните их в безопасном месте — Altium не хранит их и не сможет показать их повторно после того, как вы покинете страницу создания. Обращайтесь с токеном обновления и секретом клиента так же, как с паролями.

Обмен токена обновления на токен доступа

Отправьте запрос POST на конечную точку выдачи токенов Altium Identity.

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. Храните токен обновления, идентификатор клиента и секрет клиента в безопасном месте (например, в переменных среды или в системе управления секретами).

  2. При запуске обращайтесь к конечной точке выдачи токенов, чтобы получить новый токен доступа.

  3. Используйте токен доступа для API-запросов. Храните его в кэше до истечения срока действия.

  4. По истечении срока действия (HTTP-статус 401 Unauthorized или 200 OK с кодом ошибки AuthExpiredToken в ответе GraphQL) снова обменяйте токен обновления, чтобы получить новый токен доступа.

Срок действия токенов обновления задается при создании и составляет до 1 года. Когда срок действия токена обновления истечет, вам потребуется создать новый в разделе «Администрирование → Разработчик».

См. также

 

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Contents
Contents