smarty-authДата актуальности: 2026-06-17. Read-only документация.
Справочник REST-эндпоинтов, экспонируемых роутамиsmarty-backend-stable/smarty-auth/routes/.
Все маршруты подключены под префиксом /api/v2 (значение config.rest.api). Полный путь эндпоинта:
/api/v2 + basePath роутера + path createRoute
| Класс запроса | Описание |
|---|---|
AuthRequest |
Требует авторизованную сессию (cookie/token) + валидный аккаунт. |
BasicRequest |
Без обязательной авторизации (но может быть добавлена через middleware). |
NoAuthRequest |
Явно без авторизации. |
VariableAuthRequest |
Авторизация опциональна: если сессия есть -- подтягивает профиль, если нет -- продолжает без него. |
Все ответы оборачиваются в стандартный envelope Restify:
{
"result": { /* данные от handler */ },
"status": 200
}
Ошибки:
{
"error": {
"message": "Описание ошибки",
"code": "ERROR_CODE"
},
"status": 4xx/5xx
}
external.js)Базовый путь: /api/v2/user
Описание: "Регистрация и вход"
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/signup |
NoAuth | Регистрация нового пользователя | body: email (required), password (required), referalToken, inviteToken, referrer, promoCode, country, lang, utm, source (enum: smartycrm/smartybot, default: smartycrm) |
POST |
/login |
NoAuth | Вход по логину и паролю | body: login (required), password (required), lang, timeZone |
Валидация:
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
GET |
/change-password |
NoAuth | Проверка токена сброса пароля | query: token (required) |
POST |
/change-password |
NoAuth | Запрос на восстановление пароля (генерация токена, отправка email) | body: login (required) |
POST |
/update-password |
Auth | Смена пароля авторизованным пользователем | body: oldPassword, newPassword |
Примечания:
POST /change-password генерирует токен сброса и отправляет письмо через RMQ (changePasswordRequest).POST /update-password завершает все сессии пользователя (purge devices), кроме текущей.| Метод | Путь | Auth | Назначение |
|---|---|---|---|
GET |
/status |
Auth | Проверка статуса сессии (возвращает { email }) |
GET |
/logout |
Auth | Выход (удаление сессии) |
POST |
/logout |
Auth | Выход (POST-вариант) |
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/delete |
Auth | Запрос на удаление аккаунта | body: reason (required) |
Примечания:
isDeleted.userDeleted (время ожидания из config.deletedProfileWaitTime).socialAuth.js)Базовый путь: /api/v2/auth
Описание: "Вход через соцсети"
Подключается к: роутеру /user (external.js), итого полный путь /api/v2/user/auth/....
| Метод | Путь | Auth | Назначение |
|---|---|---|---|
GET |
/google |
NoAuth | Перенаправление на Google OAuth |
GET |
/facebook |
NoAuth | Перенаправление на Facebook OAuth |
GET |
/vk |
NoAuth | Перенаправление на VK OAuth |
GET |
/apple |
NoAuth | Перенаправление на Apple OAuth |
GET |
/zoom |
Auth | Перенаправление на Zoom OAuth (требует сессию) |
| Метод | Путь | Назначение |
|---|---|---|
GET |
/google/callback/web |
Callback от Google (web) |
GET |
/facebook/callback/web |
Callback от Facebook (web) |
GET |
/vk/callback/web |
Callback от VK (web) |
POST |
/apple/callback/web |
Callback от Apple (web, application/x-www-form-urlencoded) |
GET |
/zoom/callback/web |
Callback от Zoom (web) |
| Метод | Путь | Назначение |
|---|---|---|
GET |
/google/callback/mobile |
Callback от Google (mobile) |
GET |
/apple/callback/mobile |
Callback от Apple (mobile) |
GET |
/facebook-token |
Авторизация через Facebook access token (mobile) |
GET |
/facebook-token/callback/mobile |
Callback Facebook token (mobile) |
| Метод | Путь | Auth | Назначение |
|---|---|---|---|
GET |
/google/logout |
Auth | Отвязка Google-аккаунта |
GET |
/facebook/logout |
Auth | Отвязка Facebook-аккаунта |
GET |
/vk/logout |
Auth | Отвязка VK-аккаунта |
GET |
/apple/logout |
Auth | Отвязка Apple-аккаунта |
GET |
/zoom/logout |
Auth | Отвязка Zoom-аккаунта |
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/social/account/new |
NoAuth | Создание нового аккаунта через соцсеть | body: данные профиля соцсети; query: referalToken, inviteToken, referrer, promoCode, country, source |
POST |
/social/account/attach |
NoAuth | Привязка соцсети к существующему аккаунту (вход) | body: данные для авторизации |
| Метод | Путь | Auth | Назначение |
|---|---|---|---|
GET |
/google/checkAccess |
Auth | Проверка доступа к привязанному Google-аккаунту |
GET |
/facebook/checkAccess |
Auth | Проверка доступа к привязанному Facebook-аккаунту |
Ошибки:
AccessDenied если токен соцсети истёк или аккаунт деавторизован.user.js)Модель: User
Базовый путь: /api/v2/user/me
Авторизация: AuthRequest (User, instanceId: 'me')
Описание: "Аккаунт пользователя"
| Метод | Путь | Назначение |
|---|---|---|
GET |
/user/me |
Профиль текущего пользователя |
PATCH |
/user/me |
Обновление профиля |
Примечание: метод DELETE отключён.
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/user/me/dialogs-hide |
Auth | Настройка скрытия диалогов по типам | body: { individual?, private?, public? } (Boolean) |
POST |
/user/search/all |
VariableAuth | Поиск пользователя по телефону или email (глобально, без workspace) | body: phone или email |
POST |
/user/individual-rate |
VariableAuth | Запрос на индивидуальный тариф | body: name, phone, email |
Валидация search/all:
phone -- валидный номер телефона.email -- валидный email, приводится к lowercase.Примечание individual-rate:
systemEvent через Employee.individualRateAskPromo через RMQ.invites.js)Базовый путь: /api/v2/user/invite
Описание: "Приглашения пользователя"
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/answer |
Auth | Принять приглашение | body: _tokenId (required), _wsId (optional) |
DELETE |
/answer |
Auth | Отклонить приглашения | query: _tokenIds[] (required) |
POST |
/block |
Auth | Заблокировать приглашения | body: _tokenIds[] (required) |
GET |
/ws_dialogs |
Auth | Список workspace, доступных для приглашения в диалоги | -- |
GET |
/info |
NoAuth | Информация о приглашении по токену | query: _tokenId (required) |
Формат ответа POST /answer:
Возвращает массив объектов в зависимости от типа приглашения:
IT_EMPLOYEE (по умолчанию): { type, targetId (employee), employeeId }.IT_DIALOG: { type, targetId (dialog_configuration), employeeId }.Формат ответа GET /info:
{
"_tokenId": "string",
"email": "string",
"accountExists": true,
"isHide": false,
"inviter": { "_id", "fullName", "email", "_wsId", "imageSrc" },
"workspace": { "_id", "title", "description", "imageSrc" },
"type": "IT_EMPLOYEE | IT_DIALOG",
"info": { /* данные сотрудника или диалога */ }
}
pushMessages.js)Базовый путь: /api/v2/user/push
Описание: "Управление PUSH-уведомлениями"
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/ |
Auth | Добавление PUSH-токена устройства | body: pushToken (required) |
DELETE |
/ |
Auth | Удаление PUSH-токена текущей сессии | -- |
Примечание: токен привязывается к sessionId текущей сессии. При смене пароля все токены пользователя удаляются (purge devices).
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
POST |
/stat |
NoAuth | Отправка статистики по PUSH-сообщению | body: event (required, enum: accept/open/clear), jobId (required, ObjectId) |
serviceRoutes.js)Базовый путь: /api/v2/user
Описание: "Сервисные запросы"
| Метод | Путь | Auth | Назначение | Параметры |
|---|---|---|---|---|
GET |
/unsubscribe |
NoAuth | Отписка от email-рассылки по токену (redirect) | query: token (required) |
POST |
/activate |
NoAuth | Активация аккаунта по токену | body: token (required) |
Примечание: GET /unsubscribe перенаправляет пользователя после отписки.
| Метод | Путь | Auth | Назначение |
|---|---|---|---|
POST |
/api/v2/user/signup |
NoAuth | Регистрация |
POST |
/api/v2/user/login |
NoAuth | Вход |
GET |
/api/v2/user/change-password |
NoAuth | Проверка токена сброса |
POST |
/api/v2/user/change-password |
NoAuth | Запрос восстановления пароля |
POST |
/api/v2/user/update-password |
Auth | Смена пароля |
GET |
/api/v2/user/status |
Auth | Статус сессии |
GET/POST |
/api/v2/user/logout |
Auth | Выход |
POST |
/api/v2/user/delete |
Auth | Удаление аккаунта |
GET |
/api/v2/user/auth/google |
NoAuth | OAuth Google |
GET |
/api/v2/user/auth/facebook |
NoAuth | OAuth Facebook |
GET |
/api/v2/user/auth/vk |
NoAuth | OAuth VK |
GET |
/api/v2/user/auth/apple |
NoAuth | OAuth Apple |
GET |
/api/v2/user/auth/zoom |
Auth | OAuth Zoom |
GET |
/api/v2/user/auth/google/callback/web |
NoAuth | Google callback (web) |
GET |
/api/v2/user/auth/facebook/callback/web |
NoAuth | Facebook callback (web) |
GET |
/api/v2/user/auth/vk/callback/web |
NoAuth | VK callback (web) |
POST |
/api/v2/user/auth/apple/callback/web |
NoAuth | Apple callback (web) |
GET |
/api/v2/user/auth/zoom/callback/web |
NoAuth | Zoom callback (web) |
GET |
/api/v2/user/auth/google/callback/mobile |
NoAuth | Google callback (mobile) |
GET |
/api/v2/user/auth/apple/callback/mobile |
NoAuth | Apple callback (mobile) |
GET |
/api/v2/user/auth/facebook-token |
NoAuth | Facebook token auth |
GET |
/api/v2/user/auth/facebook-token/callback/mobile |
NoAuth | Facebook token callback |
GET |
/api/v2/user/auth/google/logout |
Auth | Отвязка Google |
GET |
/api/v2/user/auth/facebook/logout |
Auth | Отвязка Facebook |
GET |
/api/v2/user/auth/vk/logout |
Auth | Отвязка VK |
GET |
/api/v2/user/auth/apple/logout |
Auth | Отвязка Apple |
GET |
/api/v2/user/auth/zoom/logout |
Auth | Отвязка Zoom |
POST |
/api/v2/user/auth/social/account/new |
NoAuth | Создание аккаунта через соцсеть |
POST |
/api/v2/user/auth/social/account/attach |
NoAuth | Привязка соцсети к аккаунту |
GET |
/api/v2/user/auth/google/checkAccess |
Auth | Проверка Google-доступа |
GET |
/api/v2/user/auth/facebook/checkAccess |
Auth | Проверка Facebook-доступа |
GET |
/api/v2/user/me |
Auth | Профиль пользователя |
PATCH |
/api/v2/user/me |
Auth | Обновление профиля |
POST |
/api/v2/user/me/dialogs-hide |
Auth | Настройка скрытия диалогов |
POST |
/api/v2/user/search/all |
VariableAuth | Поиск пользователя по email/телефону |
POST |
/api/v2/user/individual-rate |
VariableAuth | Запрос индивидуального тарифа |
POST |
/api/v2/user/invite/answer |
Auth | Принять приглашение |
DELETE |
/api/v2/user/invite/answer |
Auth | Отклонить приглашения |
POST |
/api/v2/user/invite/block |
Auth | Заблокировать приглашения |
GET |
/api/v2/user/invite/ws_dialogs |
Auth | Workspace для приглашения в диалоги |
GET |
/api/v2/user/invite/info |
NoAuth | Информация о приглашении |
POST |
/api/v2/user/push |
Auth | Добавить PUSH-токен |
DELETE |
/api/v2/user/push |
Auth | Удалить PUSH-токен |
POST |
/api/v2/user/push/stat |
NoAuth | Статистика PUSH |
GET |
/api/v2/user/unsubscribe |
NoAuth | Отписка от рассылки |
POST |
/api/v2/user/activate |
NoAuth | Активация аккаунта |