Вход сотрудника
Сотрудник входит в ERP API по email и одноразовому паролю из письма. После входа Gigma возвращает Bearer сотрудника, его роль и права.
Этот сценарий не используется для клиентов сайта или приложения. Для них подключайте вход клиента и App Token.
Как проходит вход
- Отправьте одноразовый пароль на email сотрудника.
- Обменяйте email и пароль на Bearer.
- Получите текущего пользователя и проверьте роль, филиал и права.
- Передавайте Bearer сотрудника во всех последующих запросах.
- При выходе отзовите текущий Bearer или все Bearer сотрудника.
Безопасность
Bearer сотрудника даёт доступ в пределах его роли и прав. Храните его только в доверенном клиенте или на backend, передавайте по HTTPS и не добавляйте в URL, аналитику и обычные логи.
При 401 Unauthenticated удалите локальную сессию и проведите вход заново.
Шаг 1. Отправьте пароль на email
- Метод
- POST
- URL
https://api.gigma.ru/api/send_password- Авторизация
- Не требуется
- Headers
Accept: application/json; Content-Type: application/json
Gigma отправит сотруднику одноразовый пароль для входа.
Параметры запроса
login(string, обязательно) — адрес электронной почты сотрудника.
Пример запроса
{
"login": "employee@example.com"
} Ответ
При успешном действии возвращается HTTP 200.
{
"message": "Password successfully send"
} Описание полей ответа
message— результат отправки.
Шаг 2. Получите Bearer сотрудника
- Метод
- POST
- URL
https://api.gigma.ru/api/login- Авторизация
- Не требуется
- Headers
Accept: application/json; Content-Type: application/json
Передайте email и одноразовый пароль из письма.
Параметры запроса
login(string, обязательно) — адрес электронной почты.password(string, обязательно) — пароль из письма, отправленного послеPOST /api/send_password.device(string, необязательно, 3–50 символов) — понятное название устройства или интерфейса, напримерerp-web.
В примере используется условное значение
"1111". На рабочем сервере передавайте пароль из письма.
Пример запроса
{
"login": "employee@example.com",
"password": "1111",
"device": "erp-web"
} Ответ
При успешном действии возвращается HTTP 200.
{
"user": {
"access_token": {
"value": "28|exampleEmployeeToken"
},
"id": 1,
"role": {
"id": 1,
"name": "owner",
"description": "Собственник",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"branch": null,
"department": null,
"login": "employee@example.com",
"phone": "79999999990",
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": "Иванович",
"birthday": "1990-01-01",
"employment_date": null,
"dismissal_date": null,
"avatar": null,
"employment_contract": null,
"is_banned": false,
"is_sick": false,
"creator": null,
"active_time": 0,
"last_activity_at": null,
"permissions": [
{
"id": 2,
"screen": null,
"name": "edit-admins",
"description": "Редактирование администраторов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 4,
"screen": null,
"name": "edit-users",
"description": "Редактирование пользователей",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 5,
"screen": null,
"name": "edit-roles",
"description": "Редактирование ролей",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 6,
"screen": null,
"name": "edit-permissions",
"description": "Редактирование прав доступа",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 7,
"screen": null,
"name": "edit-branches",
"description": "Редактирование филиалов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 8,
"screen": null,
"name": "edit-departments",
"description": "Редактирование отделов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 10,
"screen": {
"id": 1,
"name": "Контрагенты",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-counterparties",
"description": "Редактирование контрагентов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 12,
"screen": null,
"name": "edit-communications",
"description": "Редактирование коммуникаций",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 14,
"screen": {
"id": 2,
"name": "Заказы",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-orders",
"description": "Редактирование заказов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 16,
"screen": {
"id": 3,
"name": "Задачи",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-tasks",
"description": "Редактирование задач",
"created_at": "2024-03-27T07:00:46.000000Z"
}
],
"created_at": "2024-03-27T07:00:46.000000Z",
"updated_at": "2024-04-03T07:07:11.000000Z"
}
} Описание полей ответа
access_token.value(string) — Bearer сотрудника. Передавайте его в заголовке:Authorization: Bearer <access_token.value>role— роль сотрудника.branch— филиал сотрудника илиnull.department— отдел сотрудника илиnull.permissions— права, по которым API разрешает операции.
Полный набор полей описан в следующем методе.
Готово: Bearer получен. Сразу запросите текущего пользователя и убедитесь, что сотруднику доступны нужные операции.
Шаг 3. Получите текущего сотрудника
- Метод
- GET
- URL
https://api.gigma.ru/api/user- Авторизация
- Bearer token
- Headers
Accept: application/json; Content-Type: application/json
Метод возвращает профиль сотрудника, его роль, филиал, отдел и права.
Параметры запроса
Отсутствуют.
Пример запроса
GET /api/user HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json Ответ
При успешном действии возвращается HTTP 200.
{
"user": {
"id": 1,
"role": {
"id": 1,
"name": "owner",
"description": "Собственник",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"branch": null,
"department": null,
"login": "employee@example.com",
"phone": "79999999990",
"first_name": "Иван",
"last_name": "Иванов",
"middle_name": "Иванович",
"birthday": "1990-01-01",
"employment_date": null,
"dismissal_date": null,
"avatar": null,
"employment_contract": null,
"is_banned": false,
"is_sick": false,
"creator": null,
"active_time": 0,
"last_activity_at": "2024-04-03T07:07:19.000000Z",
"permissions": [
{
"id": 2,
"screen": null,
"name": "edit-admins",
"description": "Редактирование администраторов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 4,
"screen": null,
"name": "edit-users",
"description": "Редактирование пользователей",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 5,
"screen": null,
"name": "edit-roles",
"description": "Редактирование ролей",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 6,
"screen": null,
"name": "edit-permissions",
"description": "Редактирование прав доступа",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 7,
"screen": null,
"name": "edit-branches",
"description": "Редактирование филиалов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 8,
"screen": null,
"name": "edit-departments",
"description": "Редактирование отделов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 10,
"screen": {
"id": 1,
"name": "Контрагенты",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-counterparties",
"description": "Редактирование контрагентов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 12,
"screen": null,
"name": "edit-communications",
"description": "Редактирование коммуникаций",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 14,
"screen": {
"id": 2,
"name": "Заказы",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-orders",
"description": "Редактирование заказов",
"created_at": "2024-03-27T07:00:46.000000Z"
},
{
"id": 16,
"screen": {
"id": 3,
"name": "Задачи",
"created_at": "2024-03-27T07:00:46.000000Z"
},
"name": "edit-tasks",
"description": "Редактирование задач",
"created_at": "2024-03-27T07:00:46.000000Z"
}
],
"created_at": "2024-03-27T07:00:46.000000Z",
"updated_at": "2024-04-03T07:07:11.000000Z"
}
} Описание полей ответа
id— идентификатор сотрудника.role— роль сотрудника в системе.branch— филиал илиnull.department— отдел илиnull.login— email сотрудника.phone— номер телефона.first_name— имя.last_name— фамилия.middle_name— отчество.birthday— дата рождения.employment_date— дата приёма на работу.dismissal_date— дата увольнения.avatar— ссылка на аватар.employment_contract— ссылка на трудовой договор.is_banned— признак блокировки.is_sick— признак больничного.creator— сотрудник, который создал пользователя, илиnull.active_time— активное время в системе.last_activity_at— дата и время последней активности.permissions— права доступа.created_at— дата создания.updated_at— дата последнего обновления.
Проверяйте не только название роли, но и конкретное право, необходимое для операции.
Завершите сессию сотрудника
- Метод
- POST
- URL
https://api.gigma.ru/api/user/logout- Авторизация
- Bearer token
- Headers
Accept: application/json; Content-Type: application/json
Отзовите текущий Bearer или все Bearer сотрудника.
Параметры запроса
from_all_devices(boolean, обязательно) —trueдля выхода со всех устройств;falseдля завершения только текущей сессии.
Пример запроса
{
"from_all_devices": true
} Ответ
При успешном действии возвращается HTTP 200.
{
"message": "User successfully logout from all devices"
} Описание полей ответа
message— результат выхода.
После ответа удалите Bearer и локальную сессию в вашем приложении.
Что дальше
- Соглашения об авторизации — заголовки и обработка
401. - Сотрудники и менеджеры — управление сотрудниками, ролями и правами.
- Вход клиента — отдельный сценарий для пользователей сайта и приложения.