Авторизация пользователя

Для большинства ресурсов сервиса требуется авторизованный доступ. Это означает что клиенту необходимо предварительно зарегистрироваться в системе и получить собственные реквизиты доступа - связка логин/пароль или API key. Далее клиент должен пройти процедуру авторизации, в рамках которой он выполняет обмен собственных реквизитов доступа на токен доступа и предоставлять его в последующих запросах.

Авторизация может быть осуществлена через стандартные процедуры Resource Owner Password Credentials Grant и Client Credentials Grant, определенные OAuth2.0. Ознакомиться с технологией OAuth можно прочитав статью, а для более детального понимания нужно обратиться к официальной спецификации протокола OAuth2.0.

POST /auth

Авторизовать пользователя и получить токен доступа ( Resource Owner Password Credentials Grant )

Запрос:

POST /auth HTTP/1.1
Host: api.medesk.md
Cache-Control: no-cache
Content-Type: multipart/form-data
Form Parameters:
 
  • grant_type – тип авторизации
  • password – пароль пользователя
  • username – логин пользователя

Ответ:

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

{
  "token_type": "Bearer",
  "access_token": "1LiNsBVMfA667Hc3qGpTnlFpRiZrh7tE3yYwjQZevPk=",
  "refresh_token": "YFrqRfwDZP7G3lNPGh1Ci2gRMf9+CPHAA6/LLqHKv6U=",
  "expires_in": 3599
}
Response JSON Object:
 
  • token_type – Тип токена доступа
  • access_token – Токен доступа
  • refresh_token – Токен обновления
  • expires_in – Количество секунд до истечения срока действия токена доступа.
DELETE /auth

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

Запрос:

DELETE /auth HTTP/1.1
Host: api.medesk.md
Authorization: Bearer w1cqDn72e9cHxnaSxONf+K3L/QjVqVDUoylPEp+ujXc=
Cache-Control: no-cache
Request Headers:
 

Ответ:

HTTP/1.1 204 OK
Status Codes:
  • 204 No Content – Успешное выполнение запроса
GET /auth/mine

Получить информацию о текущей сессии.

Запрос:

GET /auth/mine HTTP/1.1
Host: api.medesk.md
Authorization: Bearer w1cqDn72e9cHxnaSxONf+K3L/QjVqVDUoylPEp+ujXc=
Request Headers:
 

Ответ:

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

{
  "createdAt": "2014-09-05T07:00:04.378Z",
  "updatedAt": "2014-09-05T07:00:22.207Z",
  "expiresIn": 3582,
  "requestsInLastMinute": 14,
  "security": {
    "grantees": [
      "organization{oid=53ce4295d20d470800adfe49}booking-managers#",
      "organization{oid=53ce4295d20d470800adfe49}doctors#",
      "organization{oid=53ce4295d20d470800adfe49}staff#",
      "profile{pid=53ce3a80b48e77c941ea9693}#",
    ]
  },
  "profile": {
    "acl": {
      "general": 15,
      "details": 15,
      "grants": 15,
      "subscriptions": 15,
     "memberships": 15,
     "calendars": 15,
     "private": 15,
     "acl": 15
  },
    "id": "53ce3a80b48e77c941ea9693",
    "url": "/profiles/53ce3a80b48e77c941ea9693",
    "general": {
      "fname": "Иванов",
      "gender": "male",
      "lname": "Иван",
      "mname": "Иванович",
      "timezone": "Europe/Moscow",
      "fio": "Иванов Иван Иванович"
    },
    "grants": {
      "passwordCredentials": {
        "username": "ivanov"
      },
      "clientCredentials": {
        "client": "6sux6DyK"
      }
    }
  }
}
Response JSON Object:
 
  • expiresIn – Количество секунд до истечения срока действия токена доступа.
  • requestsInLastMinute – Количество запросов выполенных за последнюю минуту.
  • security – Сведения о группах безопасности связанных с данной сессией.
  • profile – Общая информация входящая в покрытие general профиля с которым связанна сессия.
Status Codes:
  • 204 No Content – Успешное выполнение запроса
PATCH /auth/mine

Сменить роль в рамках текущей сессии. Изменение роли не изменяет/продлевает время жизни текущей сессии.

Запрос:

PATCH /auth/mine HTTP/1.1
Host: api.medesk.md
Authorization: Bearer w1cqDn72e9cHxnaSxONf+K3L/QjVqVDUoylPEp+ujXc=
Request Headers:
 
JSON Parameters:
 
  • membership (string) – идентификатор целевой роли. В случае если значение данного параметра равно null, то будет выполнен выход из всех активных ролей, а сессия получить набор прав полученный путем пересечения прав всех ролей доступных пользователю.

Ответ:

HTTP/1.1 204 OK
Status Codes: