Аутентификация
Поддерживаются два способа. Выбирайте по типу клиента — оба возвращают один и тот же
auth-токен из таблицы se_session_auth.
① Bearer-токен — рекомендуется для мобильных
Stateless. Не требует cookie/session, не требует CSRF.
Передавайте токен в заголовке Authorization: Bearer <token>.
# 1. получить токен (один раз)
curl -X POST https://beon.vip/api.php?act=auth_token_issue \
-d email=USER -d password=PASS
# → {"ok":true,"result":{"token":"6a34...8251","token_type":"Bearer","user":{...}}}
# 2. каждый запрос с заголовком
curl https://beon.vip/api.php?act=auth_me \
-H 'Authorization: Bearer 6a34...8251'
# 3. выйти
curl -X POST https://beon.vip/api.php?act=auth_token_revoke \
-H 'Authorization: Bearer 6a34...8251'
Authorization, поддерживается альтернативный заголовок
X-Auth-Token: <token>.
Формат токена
40 символов hex (sha1). Это та же запись se_session_auth.session_auth_key,
которая выдаётся при веб-логине, — оба канала живут в одной таблице.
Лайфтайм
По умолчанию токен «persistent» — живёт неограниченно. Сборщик мусора удаляет токены,
не использованные дольше 6 месяцев (см. user_auth_token_delete).
last_used обновляется на каждом запросе.
② Cookie + CSRF — для веб-клиента
# 1. получить csrf-токен (создаст PHPSESSID)
curl -c jar -b jar https://beon.vip/api.php?act=csrf_token
# → {"ok":true,"result":{"token":"abc..."}}
# 2. логин
curl -c jar -b jar -X POST https://beon.vip/api.php?act=auth_login \
-H 'X-CSRF-Token: abc...' \
-d email=USER -d password=PASS
# 3. читать — куки достаточно
curl -b jar https://beon.vip/api.php?act=auth_me
# 4. писать — куки + X-CSRF-Token
curl -b jar -X POST https://beon.vip/api.php?act=im_send \
-H 'X-CSRF-Token: abc...' \
-d convo_id=1 -d text=hi
Actions раздела
Возвращает публичный профиль текущего пользователя. Если не залогинен — result: null.
Ответ result
user_idusernamedisplaynamephotoemailverifiedПример
curl -H 'Authorization: Bearer <token>' https://beon.vip/api.php?act=auth_me
Cookie-логин (для веб-клиента). Требует предварительный csrf_token. Возвращает CSRF и auth_token.
Параметры
| имя | тип | req | описание |
|---|---|---|---|
email |
string | да | email или username |
password |
string | да |
Ответ result
usercsrf_tokenauth_tokenРегистрация. Поддерживает invite, captcha (g-recaptcha-response), TOS-флаг.
Параметры
| имя | тип | req | описание |
|---|---|---|---|
email |
string | да | |
password |
string | да | |
password2 |
string | нет | по умолч. = password |
username |
string | если setting_username=1 | |
agree |
int | если включён TOS | 1 — согласие |
invite_code |
string | если включены invite-коды | |
g-recaptcha-response |
string | если включена captcha | |
timezone |
string | нет | по умолч. из настроек |
Ответ result
createduser_idlogged_incsrf_tokenverify_requiredВыход для cookie-сессии: чистит куки и se_session_auth-запись.
Ответ result
logged_outStateless-логин для мобильных и сторонних клиентов. Возвращает bearer-токен. CSRF не требуется.
Параметры
| имя | тип | req | описание |
|---|---|---|---|
email |
string | да | email или username |
password |
string | да | |
persistent |
int | нет | 1 (по умолч.) — длинный срок жизни |
Ответ result
tokentoken_typeuserПример
curl -X POST -d email=USER -d password=PASS \ https://beon.vip/api.php?act=auth_token_issue
Отзывает bearer-токен текущего запроса. Если bearer не передан — выходит из cookie-сессии.
Ответ result
revokedlogged_out