Skip to content
API находится в стадии beta и может измениться без предварительного уведомления.

Scopes и Claims

Scopes контролируют, к каким данным может получить доступ ваше приложение. Запрашивайте только то, что нужно.

Доступные scopes

ScopeОписаниеВозвращаемые claims
openidОбязательный. Идентификация пользователя.sub, id
profileИмя и настройки отображения.name, given_name, family_name, display_name, preferred_username, native_script, preferred_order
emailEmail-адрес пользователя.email
project:readДоступ к членству в проекте.project (объект с ролью и разрешениями)

Запрос scopes

Передайте scopes через пробел в URL авторизации:

https://hitkey.io/?client_id=...&scope=openid+profile+email&...

Scope по умолчанию

Если scope не указан, возвращаются все claims (эквивалентно запросу всех scopes). Для ограничения ответа всегда указывайте scopes явно.

Справочник claims

Scope openid

ClaimТипОписание
substring (UUID)Уникальный, неизменяемый идентификатор
idstring (UUID)То же значение, что и sub (всегда включён)

Scope profile

ClaimТипОписание
namestringПолное форматированное имя
given_namestring | nullЛичное имя/имена
family_namestring | nullФамилия
display_namestring | nullПредпочтительное отображаемое имя
preferred_usernamestring | nullУникальный username (OIDC стандарт)
native_scriptstring | nullИмя на родном языке
preferred_order"western" | "eastern" | nullПорядок отображения имени

Scope email

ClaimТипОписание
emailstringОсновной email пользователя

INFO

Поле email_verified не возвращается эндпоинтом /oauth/userinfo. Включается только email-адрес.

Scope project:read

Используется с project-scoped OAuth-клиентами. Возвращает информацию о членстве пользователя в проекте клиента.

ClaimТипОписание
project.project_idstring (UUID)ID проекта
project.project_namestringНазвание проекта
project.project_slugstringSlug проекта
project.rolestringРоль пользователя в проекте
project.permissionsstring[]Массив ключей разрешений

INFO

Scope project:read возвращает данные только когда OAuth-клиент привязан к проекту. Для клиентов без проекта этот scope игнорируется.

Фильтрация scopes

HitKey фильтрует запрошенные scopes. Неизвестные scopes молча игнорируются:

Запрошено: openid profile email custom_scope
Предоставлено: openid profile email

Пример: минимальный vs полный

Минимальный — только идентификация:

scope=openid

Возвращает:

json
{
  "sub": "550e8400-e29b-41d4-a716-446655440000",
  "id": "550e8400-e29b-41d4-a716-446655440000"
}

Полный — идентификация + профиль + email:

scope=openid+profile+email

Возвращает:

json
{
  "sub": "550e8400-e29b-41d4-a716-446655440000",
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "John Doe",
  "given_name": "John",
  "family_name": "Doe",
  "display_name": "John Doe",
  "preferred_username": "johndoe",
  "native_script": null,
  "preferred_order": "western",
  "email": "user@example.com"
}

HitKey Service License.