Авторизация

По умолчанию на сервере применяется Basic-авторизация. Данная авторизация подразумевает передачу логина и пароля в заголовке запроса.

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

пример запроса на авторизацию
POST http://localhost/auth HTTP/1.1 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

UserName=логин&Password=пароль

где,

  • UserName: string — имя пользователя
  • Password: string — пароль пользователя

Ответом от сервера может быть один из результатов:

Авторизация выполнена
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{"token":"YWRtaW4NCkFkb","user":{"claims": ".admin.user.","userId":1}}

, где

  • token: string — токен-авторизации, который нужно передавать в каждом запросе на сервер;
  • user.claims: string — строка со списком ролей, которые присутствуют у пользователя, разделителем выступает символ «.» (точка);
  • user.userId: integer — идентификатор пользователя.
Пользователь не авторизован
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{"code": 401, "meta": { "success": false, "msg": "Не авторизован." }}

, где

  • code: integer — статус запроса, всегда 401;
  • meta.success: boolean — результат запроса;
  • meta.msg: string — причина, может быть и пустая строка.
Пример запроса на сервер
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
RPC-Authorization: Token YWRtaW4NCkFkb

[{ тут сигнатура запроса }]

Токен должен отправляться на сервер в следующем формате, [Token][пробел][строка]:

  • [Token] — строка с указанием данного слова;
  • Далее следует пробел, который выступает разделителем;
  • Токен, который был получен при авторизации.

Заголовок RPC-Authorization для различных приложений может иметь своё название. Какое наименование передавать, нужно уточнить у разработчика REST сервиса.

Токен

-это специальная строка в которой зашифрован логин и пароль. Например, user:password, где символ «:» является разделителем. Для дополнительной безопасности указанная выше строка преобразуется в base64.

OpenToken

В некоторых случаях можно передать токен по другому, в открытом виде (главное в них не должно быть символа «:») без кодирования в base64.

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
RPC-Authorization: OpenToken Логин:Пароль

[{ тут сигнатура запроса }]
Print Friendly, PDF & Email