API авторизации в веб-сервисах Waviot

Последние изменения: 29.08.2019

Единая авторизация

Запрос:

POST https://auth.waviot.ru/?action=user-login
Content-type: application/json
X-requested-with: XMLHttpRequest

{"login": "example@example.com","password":"your_password"}

Ответ в случае, если указаны правильные логин и пароль

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8

{
  "sc": "...",
  "rt": "...",
  "WAVIOT_JWT": "...",
  "sessid": "..."
}

Ответ в случае, если указаны неправильные логин и пароль:

HTTP/1.1 302 Moved Temporarily

Далее для запросов на auth.waviot.ru/lk.waviot.ru/api.waviot.ru используем полученный JWT в заголовках ко всем запросам, требующим авторизацию.


Восстановление пароля

Запрос:

POST https://auth.waviot.ru/?action=user-recovery_password
Content-type: application/json
X-requested-with: XMLHttpRequest

{"mail":"example@waviot.com"}

Ответ при неправильно указанном email:

<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{
  "success": false,
  "message": "Указанный email не найден. Проверьте правильность написания почтового адреса или зарегистрируйтесь"
}

Ответ при правильном и существующем email:

<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{
  "success": true,
  "message": "Письмо для восстановления пароля отправлено."
}

Регистрация

Запрос:

POST https://auth.waviot.ru/?action=user
Content-type: application/json
X-Requested-With: XMLHttpRequest

{
  "lastName": "Иванов",
  "firstName": "Пётр",
  "middleName": "Алексеевич",
  "headEmail": "example@waviot.com",
  "phone": "79260001111",
  "password": "yet_another_password",
  "repPassword": "yet_another_password"
}

Ответ при успешной регистрации:

<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{
  "success": true,
  "message": "Регистрация успешно пройдена, для продолжения работы с сервисом требуется подтверждение email или телефона"
}

Ответ при неудачной регистрации:

<b>HTTP/1.1 </b><b>500</b><b> Internal Server Error</b>

либо

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>
Content-Type: application/json; charset=UTF-8

{
  "success": false,
  "message": "Произошла ошибка при регистрации: неправильно указан email"
}

Редактирование основных данных пользователя

Запрос:

POST https://auth.waviot.ru/?action=user
Content-type: application/json
X-Requested-With: XMLHttpRequest
Authorization: bearer [JWT]

{
  "lastName": "Иванов",
  "firstName": "Пётр",
  "middleName": "Алексеевич",
  "headEmail": "example@waviot.com",
  "phone": "79260001111"
}

Ответ при успешном изменении данных:


<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{
  "success": true,
  "message": "Ваши изменения сохранены"
}

Ответ при неудачном изменении данных:

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=UTF-8

{
  "success": false,
  "message": "Указаны некорректные данные для сохранения"
}

Получение основных данных пользователя

Запрос:

GET https://auth.waviot.ru/?action=get-whoAmI
Content-type: application/json
X-requested-with: XMLHttpRequest
Authorization: bearer [JWT]

Ответ при удачном выполнении запроса:

<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{
  "account_id": "9edde2c0-548d-11e9-9ccc-0cc41a1673e1",
  "lastName": "Иванов",
  "firstName": "Дмитрий",
  "middleName": "Анатольевич",
  "headEmail": "demo@demo.com",
  "emailConfirmed": "1",
  "createdTS": "1560160621",
  "confirmTS": "1560160695",
  "birthday": null,
  "phone": "79251234567",
  "phoneConfirmed": "1",
  "balance": "0",
  "b_id": "1129",
  "lk_id": "5247",
  "location": "ru",
  "language": "ru",
  "activity": "1"
}

Ответ при неудачном выполнении запроса:

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>

400 Unauthorized

Получение дополнительных опций пользователя

Запрос:

GET https://auth.waviot.ru/?action=get-accounts_settings
X-Requested-With: XMLHttpRequest
Authorization: bearer [JWT]

Ответ при удачном выполнении запроса:

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8

{
  "api": [
    {
      "name": "notifications-meters__email",
      "createdTS": 1560237687,
      "value": "1"
    },
    {
      "name": "notifications-meters__push",
      "createdTS": 1560237686,
      "value": "1"
    },
    {
      "name": "notifications-tariffs__email",
      "createdTS": 1560237685,
      "value": "1"
    },
    {
      "name": "notifications-tariffs__push",
      "createdTS": 1560237684,
      "value": "1"
    }
  ]
}

Ответ при неудачном выполнении запроса:

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>

400 Unauthorized

Редактирование дополнительных опций пользователя

Запрос:

POST https://auth.waviot.ru/?action=set-accounts_settings
X-Requested-With: XMLHttpRequest
Content-type: application/json
Authorization: bearer [JWT]

{"notifications-tariffs__push": 1, "notifications-tariffs__sms": 1, "notifications-tariffs__email": 0}

Ответ при удачном выполнении запроса:

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8

{
  "success": true,
  "set_count": 3,
  "result": {
    "notifications-tariffs__push": true,
    "notifications-tariffs__sms": true,
    "notifications-tariffs__email": true
  }
}

Ответ при неудачном выполнении запроса:

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>

400 Unauthorized

Смена пароля

Запрос:

POST https://auth.waviot.ru/?action=user-password
Content-type: application/json
X-requested-with: XMLHttpRequest
Authorization: bearer [JWT]

{"password_old":"VksfUY!4","password_new":"whejMNnsd"}

Ответ при успешной смене пароля:

<b>HTTP/1.1 </b><b>200</b><b> OK</b>
Content-Type: application/json; charset=UTF-8

{"success": true}

Ответ при неудачной смене пароля:

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>
Content-Type: application/json; charset=UTF-8

{
  "code": 400,
  "message": "Некорректный запрос",
  "result": {
    "errors": {
      "password_old": "Не указан старый пароль",
      "password_new": "Не указан новый пароль"
    }
  }
}

Получение истории входов

Запрос:

GET https://auth.waviot.ru/?action=user-auth_history
X-requested-with: XMLHttpRequest
Authorization: bearer [JWT]

Ответ при удачном выполнении запроса:

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8

[
  {
    "date_time": "25.07.2019 11:51:08",
    "browser": {
      "family": "Chrome",
      "version": "75.0.3770"
    },
    "operating_system": {
      "family": "Mac OS X",
      "version": "10.14.6"
    },
    "device": {
      "brand": null,
      "family": "Other",
      "model": null
    },
    "ts": "1564044668",
    "country": {
      "id": 185,
      "iso": "RU",
      "lat": 60,
      "lon": 100,
      "name_ru": "Россия",
      "name_en": "Russia"
    },
    "region": {
      "id": 524894,
      "name_ru": "",
      "name_en": "Moskva",
      "iso": "RU-MOW"
    },
    "city": {
      "id": 524901,
      "lat": 55.75222,
      "lon": 37.61556,
      "name_ru": "Москва",
      "name_en": "Moscow"
    },
    "map_links": {
      "google": "https://google.com/maps/search/55.75222,37.61556",
      "yandex": "https://yandex.ru/maps/?text=55.75222,37.61556"
    },
    "type": "browser",
    "ip": "185.9.231.191",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
  },
  {
    "date_time": "24.07.2019 19:02:13",
    "browser": {
      "family": "Chrome",
      "version": "75.0.3770"
    },
    "operating_system": {
      "family": "Mac OS X",
      "version": "10.14.6"
    },
    "device": {
      "brand": null,
      "family": "Other",
      "model": null
    },
    "ts": "1563984133",
    "country": {
      "id": 185,
      "iso": "RU",
      "lat": 60,
      "lon": 100,
      "name_ru": "Россия",
      "name_en": "Russia"
    },
    "region": {
      "id": 524894,
      "name_ru": "",
      "name_en": "Moskva",
      "iso": "RU-MOW"
    },
    "city": {
      "id": 524901,
      "lat": 55.75222,
      "lon": 37.61556,
      "name_ru": "Москва",
      "name_en": "Moscow"
    },
    "map_links": {
      "google": "https://google.com/maps/search/55.75222,37.61556",
      "yandex": "https://yandex.ru/maps/?text=55.75222,37.61556"
    },
    "type": "browser",
    "ip": "185.9.231.191",
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
  }
]

Ответ при неудачном выполнении запроса:

<b>HTTP/1.1 </b><b>400</b><b> Bad Request</b>

400 Unauthorized

Помогла ли вам статья?