Авторизация

Руководство по аутентификации

Данное руководство описывает способы взаимодействия с GoodBridge Auth Server для получения и обновления токенов аутентификации.


1. Получение Access Token

Чтобы получить новый access_token и refresh_token, используйте тип гранта client_credentials.

Эндпоинт: POST /oauth/token

Тело запроса:

{
  "grant_type": "client_credentials",
  "client_id": "your-client-id",
  "client_secret": "your-client-secret"
}

Успешный ответ:

  • access_token (string): Токен, используемый для авторизации запросов к защищенным сервисам.
  • refresh_token (string): Токен, используемый для получения нового access token, когда текущий истечет.
  • access_expires_at (datetime): Время истечения access token (ISO 8601).
  • refresh_expires_at (datetime): Время истечения refresh token (ISO 8601).
  • token_type (string): Обычно “bearer”.

2. Обновление Access Token

Когда срок действия access_token истекает, вы можете использовать refresh_token для получения новой пары токенов без повторной аутентификации с помощью клиентских учетных данных.

Эндпоинт: POST /oauth/token

Тело запроса:

{
  "grant_type": "refresh",
  "refresh_token": "your-refresh-token"
}

Успешный ответ:

Структура ответа такая же, как и при первом получении токенов.


3. Использование Access Token

Включите access_token в заголовок Authorization ваших HTTP-запросов к защищенным микросервисам:

Authorization: Bearer <access_token>

4. Отзыв токена

Если вам необходимо вручную аннулировать токен (например, при выходе из системы), используйте эндпоинт /oauth/revoke.

Эндпоинт: DELETE /oauth/revoke

Параметры запроса (query):

  • token (string): Токен, который вы хотите отозвать.
  • token_type_hint (string): Тип токена, либо access, либо refresh.

Пример:

DELETE /oauth/revoke?token=<your_token>&token_type_hint=access


5. Интроспекция токена

Чтобы проверить, действителен ли токен, и получить его метаданные, используйте эндпоинт /oauth/introspect.

Эндпоинт: GET /oauth/introspect

Параметры запроса (query):

  • access_token (string): Токен для проверки.

Пример:

GET /oauth/introspect?access_token=<your_access_token>

Ответ:

{
  "is_active": true,
  "client_id": "your-client-id",
  "expires_at": 1711814040.0
}