Авторизация¶
Ресурсы — только AuthToken¶
| HTTP | |
|---|---|
<AuthToken> — access_token из POST /oauth/token. Сырой API-ключ на /table/… и прочих ресурсах не принимается.
Исключения без Bearer: GET /health, GET /.well-known/oauth-authorization-server.
Trailing slash опционален: /me и /me/ одинаковы.
Выдача токена: credential_type¶
| Bash | |
|---|---|
| credential_type | Поля | Резолв |
|---|---|---|
api_key | api_key | активный ключ |
auth | username, password | DLE verify → ключ юзера → гость → access_denied |
oauth_client | client_id, client_secret | client_credentials → ключ клиента |
Рядом поддерживаются grant_type: authorization_code, refresh_token, client_credentials, password.
Identity: /me и /oauth/userinfo¶
GET /api/v2/me и GET /api/v2/oauth/userinfo с Bearer отдают субъект токена: sub/user_id, name, email, user_group, api_key_id, access_level.
Secure-маски ПДн применяются к CRUD /table, не к identity /me/userinfo. Пароли, hash, сырой ключ и client_secret никогда не отдаются.
OAuth Authorization Server¶
Discovery (без Bearer):
GET /api/v2/.well-known/oauth-authorization-server
Поля: issuer, authorization_endpoint, token_endpoint, revocation_endpoint, userinfo_endpoint, grants/PKCE/credential_types_supported.
/oauth/authorize — сессия DLE (редирект на логин, если гость) → code + redirect на зарегистрированный redirect_uri (+ PKCE). В админке OAuth — копируемые URL.
DEMO_MODE / DLEAPI_SECURE¶
В ROOT_DIR/.env:
При DEMO_MODE=true: secure принудительно; успешная проверка credentials не выдаёт токен:
| JSON | |
|---|---|
/oauth/authorize в демо — redirect с error=demo_mode без code.
Уровни доступа¶
Ключ → access_level_id. Уровень: scopes read/write/edit/delete, own_only, cheater, премодерация, маски. Default — default_access_level_id в настройках. Map группа↔уровень — страница «Синхронизация с группами».