SHA256
Solana-first регистрация: lazy-import пользователя при входе, AddUser отключен, UI ожидание 15с
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
# API для разработчиков: Регистрация пользователя
|
||||
|
||||
Этот файл описывает временный раздел API, связанный с заведением пользователя на сервере и проверкой, существует ли пользователь.
|
||||
Этот файл описывает раздел API, связанный с проверкой наличия пользователя на сервере и dev/test операциями.
|
||||
|
||||
Сейчас здесь три метода:
|
||||
|
||||
- `AddUser` — временная серверная регистрация пользователя;
|
||||
- `AddUser` — операция отключена (регистрация только через Solana);
|
||||
- `GetUser` — временная серверная проверка существования пользователя и чтение его базовых данных;
|
||||
- `SearchUsers` — dev/test поиск логинов по префиксу.
|
||||
|
||||
Их логика пока вспомогательная и dev-oriented: сервер сам хранит эти данные локально и сам отвечает на existence-check. В будущем оба сценария должны быть заменены на нормальную работу напрямую через Solana, но пока этот контракт нужен клиентам для разработки и интеграции.
|
||||
Регистрация выполняется через Solana (`shine_users`). Сервер при входе может лениво импортировать пользователя из Solana PDA в локальную БД, если записи ещё нет.
|
||||
|
||||
## Статус документа
|
||||
|
||||
@@ -22,12 +22,7 @@
|
||||
|
||||
### Назначение
|
||||
|
||||
Временная регистрация локального пользователя на сервере.
|
||||
|
||||
Сервер:
|
||||
|
||||
- создаёт запись в `solana_users`;
|
||||
- создаёт стартовое состояние в `blockchain_state`.
|
||||
Операция отключена. Используется только как явный ответ клиентам старых версий.
|
||||
|
||||
### Запрос
|
||||
|
||||
@@ -46,29 +41,16 @@
|
||||
}
|
||||
```
|
||||
|
||||
### Успешный ответ
|
||||
### Пример ответа
|
||||
|
||||
```json
|
||||
{
|
||||
"op": "AddUser",
|
||||
"requestId": "reg-001",
|
||||
"status": 200,
|
||||
"ok": true,
|
||||
"payload": {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Пример ошибки
|
||||
|
||||
```json
|
||||
{
|
||||
"op": "AddUser",
|
||||
"requestId": "reg-001",
|
||||
"status": 409,
|
||||
"status": 410,
|
||||
"ok": false,
|
||||
"error": "USER_ALREADY_EXISTS",
|
||||
"message": "Пользователь с таким login уже существует",
|
||||
"error": "ADD_USER_DISABLED",
|
||||
"message": "Серверная регистрация AddUser отключена. Используйте регистрацию через Solana.",
|
||||
"payload": {
|
||||
}
|
||||
}
|
||||
@@ -76,14 +58,7 @@
|
||||
|
||||
### Специфические коды ошибок `AddUser`
|
||||
|
||||
- `400 / BAD_FIELDS` — не переданы обязательные поля регистрации.
|
||||
- `400 / BAD_BLOCKCHAIN_NAME` — `blockchainName` не соответствует формату `<login>-NNN`.
|
||||
- `400 / BAD_KEY_FORMAT` — один из ключей не является корректным `Base64(32 bytes)`.
|
||||
- `409 / USER_ALREADY_EXISTS` — пользователь с таким `login` уже есть.
|
||||
- `409 / BLOCKCHAIN_ALREADY_EXISTS` — такой `blockchainName` уже занят.
|
||||
- `409 / BLOCKCHAIN_STATE_ALREADY_EXISTS` — стартовое состояние blockchain уже существует.
|
||||
- `501 / DB_ERROR` — ошибка БД при создании пользователя.
|
||||
- `500 / INTERNAL_ERROR` — непредвиденная внутренняя ошибка сервера.
|
||||
- `410 / ADD_USER_DISABLED` — серверная регистрация отключена, используйте Solana-first flow.
|
||||
|
||||
---
|
||||
|
||||
@@ -95,9 +70,8 @@
|
||||
|
||||
Важно:
|
||||
|
||||
- это временное решение;
|
||||
- позже клиент должен проверять existence/identity напрямую через Solana;
|
||||
- на финальный production flow не стоит жёстко завязывать архитектуру клиента на `GetUser`.
|
||||
- это server-side existence-check;
|
||||
- если пользователя нет в локальной БД, он может быть импортирован при авторизации из Solana PDA.
|
||||
|
||||
### Запрос
|
||||
|
||||
@@ -209,7 +183,7 @@
|
||||
|
||||
## 4. Короткое резюме
|
||||
|
||||
- `AddUser` — временная регистрация пользователя на сервере.
|
||||
- `GetUser` — временная проверка существования пользователя на сервере.
|
||||
- `AddUser` — отключен (`410 / ADD_USER_DISABLED`).
|
||||
- `GetUser` — проверка существования пользователя на сервере.
|
||||
- `SearchUsers` — временный поиск пользователей по префиксу.
|
||||
- И регистрация, и existence-check позже должны быть переведены на Solana.
|
||||
- Регистрация выполняется только через Solana.
|
||||
|
||||
@@ -73,6 +73,7 @@ ed25519/BASE64_PUBLIC_KEY
|
||||
- `400 / EMPTY_LOGIN` — пустой `login`.
|
||||
- `400 / ALREADY_AUTHED` — по текущему соединению уже выполнена авторизация.
|
||||
- `422 / UNKNOWN_USER` — пользователь с таким `login` не найден.
|
||||
- `501 / SOLANA_IMPORT_FAILED` — сервер не смог проверить/импортировать пользователя из Solana при lazy-import.
|
||||
- `500 / INTERNAL_ERROR` — непредвиденная внутренняя ошибка сервера, если появится вне штатного сценария.
|
||||
|
||||
---
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
| Операция | Раздел документации | Кратко |
|
||||
| --- | --- | --- |
|
||||
| `AddUser` | `01_User_Registration_API.md` | временная регистрация пользователя |
|
||||
| `AddUser` | `01_User_Registration_API.md` | отключено (`410 / ADD_USER_DISABLED`) |
|
||||
| `GetUser` | `01_User_Registration_API.md` | чтение/проверка пользователя |
|
||||
| `SearchUsers` | `01_User_Registration_API.md` | поиск логинов по префиксу |
|
||||
| `AuthChallenge` | `02_Authentication_API.md` | challenge для создания новой сессии |
|
||||
|
||||
Reference in New Issue
Block a user