DevCraft Документации
Гайды

OAuth-клиенты v200.1.0

Как завести приложение в админке DLE API: ключ, grants, redirect, секрет.

OAuth-клиент — это запись «внешнее приложение» в DevCraft → DLE APIOAuth-клиенты. Права токена = права API-ключа, к которому клиент привязан. Сам сайт при этом раздаёт токены — см. OAuth-сервер.

Что нужно заранее

URL сервера (копируйте из админки)

Над списком клиентов — панель адресов (база /api/v2):

НазваниеПуть
discovery/.well-known/oauth-authorization-server
authorize/oauth/authorize
token/oauth/token
revoke/oauth/revoke
userinfo/oauth/userinfo

Их же отдаёт discovery JSON. Сценарии с curl: oauth-server.

Создание клиента

Создайте API-ключ

Страница Ключи — без ключа клиенту не к чему привязать права.

Заполните форму «Создать клиент»

ПолеОбязательноПростыми словами
НазваниенетПодпись в списке; пусто → подставится client_id
API-ключдаКакие таблицы и действия разрешены токену
Redirect URIдля входа через браузерТочный URL возврата; для M2M можно пусто
Grant typesда (≥1)Способы выдачи токена

Сервер сам выдаёт client_id и client_secret. Секрет показывают один раз — сохраните сразу. Потом только «Пересоздать client_secret».

PKCE (code_challenge / code_verifier) в форме нет — их шлёт приложение на authorize/token.

Проверка: Postman. Связка с форумом: XenForo.

Редактирование

  • client_id не меняется.
  • Можно менять название, ключ, Redirect URI, grants, флаг Активен.
  • Неактивный клиент новые токены не получает.
  • Секрет — только пересоздание; старый сразу мёртв.

Какой grant выбрать

GrantКогда
authorization_code (+ часто refresh_token)Пользователь логинится через сайт DLE (SPA, внешнее приложение) — нужен Redirect URI
client_credentialsСервер-к-серверу, без пользователя
passwordЛогин/пароль в теле запроса — только доверенным клиентам
refresh_tokenОбновить access_token после code-flow

Берите минимум grants. Redirect URI для code-flow должен совпадать с запросом байт-в-байт.

Связь с упрощённым credential_type и примерами curl: oauth-server, auth.

Если что-то не работает

СимптомЧто проверить
Не создаётся клиентВыбран ключ; отмечен хотя бы один grant
Ошибка на authorizeRedirect URI = URI клиента; есть grant authorization_code
invalid_grantНужный grant включён у клиента
Потерян секрет«Пересоздать client_secret»
Токен null при верных данныхИнструкция .env — часто DEMO_MODE
401 на /tableНужен Bearer от token, не сырой API-ключ (auth)

См. также

На этой странице