Статья успешно отправлена на почту

Авторизация в системе через REST API

Применимо к продуктам: Mobile SMARTS платформа Магазин 15 Курьер 15
Последние изменения: 2024-03-26

Выделите текст или фото, с замеченной ошибкой > нажмите карандаш для редактирования

Заметили ошибку в тексте?
Напишите нам, мы исправим!

Если в системе включена авторизация, то для начала работы с API необходимо пройти авторизацию в системе.

Реализованы несколько вариантов авторизации:

  • BASIC авторизация.
  • Авторизация методом GET по адресу /api/session с получением token.
  • Авторизация методом POST по адресу /api/session с получением token.

REST API работает только если при работе с ТСД используется сервер Mobile SMARTS. При прямом подключении ТСД к компьютеру через кабель/крэдл или при обмене с учетной системой через папку использовать REST API не получится.

В базе Mobile SMARTS должна быть включена авторизация, тогда для выполнения HTTP-запросов необходимо будет каждый раз авторизовываться, есть 2 варианта авторизации:

  • BASIC авторизация — в этом случае при каждом HTTP-запросе нужно будет отправлять логин и пароль;

  • авторизация с использованием токена — при первом HTTP-запросе передаются логин и пароль, а сервер MS возвращается токен — уникальный идентификатор сессии (access token), который при последующих HTTP-запросах можно будет использовать вместо передачи логина и пароля. Срок действия токена (т.е. сессии) ограничен, поэтому для обновления токена при первом запросе сервер Mobile SMARTS дополнительно возвращает «токен обновления» (refresh token) — он нужен для получения нового токена после истечения срока действия текущего токена.

Обратите внимание. Для защиты передаваемых данных рекомендуется использовать режим с включенной аутентификацией и доступом по https.

Для работы через протокол https необходимо указать это в настройках базы данных, для этого зайдите в менеджер базы, справа кнопки «Добавить» нажмите на выпадающий список и выберите пункт «Настройки», далее в окне «Редактирование настроек» поставьте галочку «Использовать http» и нажмите «ОК».


Для работы в режиме с включенной аутентификацией необходимо завести пользователей, задать им логины и пароли. В панели управления Mobile SMARTS узел «Пользователи и группы» содержит данные о пользователях и группах, в которых они состоят.


Инструкция по конфигурации настроек пользователей и групп пользователей, как определить роль пользователей и список типов документов, доступных для обработки пользователям такой группы описана в одноименной статье на сайте.

Пример запроса на авторизацию приложения методом POST


  1. Для начала в настройках базы Mobile SMARTS включите авторизацию/аутентификацию по пользователю и нажмите на кнопку «ОК»

  2. Пример запроса на авторизацию
    http://localhost:51434/api/v1/session?username={username}&password={password}
    в ответ приходит Access_token



  3. В последующих запросах в заголовке указываем

    {Authorization: Bearer {Access_token}


    Если не указать Authorization, в ответ приходит статус ошибки
    401 — Unauthorized



  4. При успешной авторизации приходит ответ и статус 202 — OK


    BASIC авторизация

    Данный вид авторизации чаще всего используется браузером для доступа к функциям API.

    При использовании данного метода необходимо в заголовке каждого запроса указывать:

    Authorization: Basic {login}:{password}

    Допускается base64 при формировании строки {login}:{password}

    Авторизация методом GET

    Еще один способ авторизации — отправить GET запрос по адресу /api/v1/session, при этом в url запросе указать параметры login и password:

    https://localhost:9000/api/v1/session?username=${Username}&password=${Password}

    Ответ сервера:

    {
    Access_token:"123123123", Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321",
    }

    Авторизация методом POST

    Авторизация по логину и паролю происходит путем отправки POST запроса на сервер, в результате которого возвращается access_token и refresh token в формате JSON.

    Пример запроса:

    POST /oauth/token HTTP/1.1
    Host: mobilesmarts.ru/api/session
    Content-Type: application/x-www-form-urlencoded

    grant_type=password&client_id=123&client_secret=user&username=user@domain.ru&password=123456

    Ответ сервера:

    {
    Access_token:"123123123",
    Token_type:"bearer", Expires_in:86400, Refresh_token:"321321321", }

    Восстановление после окончания срока действия сессии

    Восстановление после окончания срока действия сессии происходит путем отправки refresh_token на сервер, в результате приходит новый access_token и refresh_token

    Пример:

    POST /oauth/token HTTP/1.1
    Host: mobilesmarts.ru/api/session
    Content-Type: application/x-www-form-urlencoded

    grant_type:refresh_token&client_id=123&client_secret=user&refresh_token=321321321

    Ответ:

    HTTP/1.1 200 OK
    Content-Type: application/json

    {
    Access_token:"99999",
    Token_type:"bearer",
    Expires_in:86400,
    Refresh_token:"789789789",
    }

    Вызов функций с использованием token

    Для того чтобы обратиться к функциям (если не используется Basic авторизация), для которых необходима авторизация, необходимо в заголовке Authorization передавать токен:

    Authorization: Bearer <token>

    Иначе сервер вернет ошибку авторизации 401.

    Была ли статья полезна?
    Спасибо за ваш отзыв!
    Отзыв
    Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
    0/500