# getLoginCapabilities
Версия: 4.3.3+
Описание: получить расширенную информацию о возможностях авторизации на сервере.
Команда возвращает свойства, которые указывают на дополнительные возможности и ограничения, связанные с авторизацией на сервере при помощи метода login.
Пример:
{
"method": "getLoginCapabilities",
"requestId" : "1"
}
Примеры ответа:
{
"method" : "getLoginCapabilities",
"requestId" : "1",
"result" : true,
"socialManifest": "https://some.server:743/manifest&lang=ru&os=windows&version=4.3.3"
}
Описание параметров:
socialManifest
- ссылка для авторизации через сторонние провайдеры. Поле может отсутствоватьauthenticationMethod
- необходимый тип авторизации. Поле может отсутствовать. Возможные значения:0
- авторизация с использованием логина и пароля с отправкой на серверmd5
от пароля1
- авторизация с использованием логина и пароля с отправкой на сервер пароля без преобразования (plain text)2
- авторизация через внешний провайдер без логина и пароля
emailLogin
- поле, указывающее на допустимую авторизацию по почте. Поле может отсутствовать. Возможные значения:1
- допустима авторизация по почте с неявной регистрацией и ожиданием сессии
requestId
- уникальный идентификатор запроса. Детальнее с ним можно ознакомиться здесь
Пример авторизации при помощи сторонних провайдеров:
В нем исходим из того, что TrueConf Room уже подключен к серверу и с ним есть авторизованное подключение, сделанное при помощи auth для возможности посылать команды и получать ответы и нотификации.
- Посылаем запрос
{
"method": "getLoginCapabilities"
}
- Получаем ответ
{
"method" : "getLoginCapabilities",
"result" : true,
"socialManifest": "https://some.server:743/manifest&lang=ru&os=windows&version=4.3.3"
}
Делаем
GET
запрос по ссылке, указанной в значении поляsocialManifest
Получаем в ответе набор информации касательно доступных провайдеров авторизации: имена, ссылки для этого, набор иконок и прочее. Пример такого ответа:
{
"networks": [
{
"id": "vk",
"name": "\u0412\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=vk&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=vk&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=vk&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=vk&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/vkontakte.svg"
}
},
{
"id": "gl",
"name": "Google",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=gl&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=gl&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=gl&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=gl&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/google.svg"
}
},
{
"id": "ml",
"name": "Mail.ru",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=ml&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=ml&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=ml&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=ml&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/mailru.svg"
}
},
{
"id": "ya",
"name": "\u042f\u043d\u0434\u0435\u043a\u0441",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=ya&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=ya&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=ya&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=ya&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/yandex.svg"
}
},
{
"id": "ok",
"name": "\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=ok&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=ok&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=ok&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=ok&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/odnoklassniki.svg"
}
},
{
"id": "ms",
"name": "Microsoft",
"features": {
"login": "https:\/\/some.server:743\/social-login?utm_source=application&full_version=1&name=ms&version=8.4.0&lang=ru",
"login2": "https:\/\/some.server:743\/social-login?utm_source=application&version=2&full_version=1&name=ms&version=8.4.0&lang=ru",
"login3": "https:\/\/some.server:743\/social-login?&name=ms&version=8.4.0&lang=ru",
"import": "https:\/\/some.server:743\/widget\/login\/import?name=ms&version=8.4.0&lang=ru"
},
"pictures": {
"24": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"36": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"48": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"64": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"72": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"96": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"128": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg",
"144": "https:\/\/some.server:743\/public\/images\/social\/icons\/qt\/8.0\/windows.svg"
}
}
],
"invitations": []
}
Описание параметров:
networks
- список доступных провайдеровid
- уникальный идентификатор провайдераname
- имя провайдераpictures
- размеры иконок с логотипом поставщикаlogin
- устаревшее поле, которое не нужно использоватьlogin2
- ссылка для авторизации на Windows, macOS, Linux, iOSlogin3
- ссылка для авторизации на Android
Открываем веб страницу по ссылке, указанной из соответствующего значения поля
login*
и проводим авторизацию на нейРезультатом авторизации на вебе является присутствие в теле ответа формы
<form name='vsreg'></form>
В случае успешной авторизации форма содержит следующие скрытые поля:
<input type='hidden' name='login' value='{{call_id}}' />
<input type='hidden' name='password' value='{{session}}' />
<input type='hidden' name='state' value='successfull' />
<input type='hidden' name='status' value='{{status}}' /> /* Данное поле является необязательным и содержит дополнительную информацию о авторизации. Может принимать значения first_login и registration*/
В случае неуспешной авторизации форма содержит следующие скрытые поля (Только для login2
):
<input type='hidden' name='state' value='error' />
<input type='hidden' name='error_code' value='{{error.code}}' /> /* Код ошибки */
<input type='hidden' name='error_desc' value='{{error.desc}}' /> /* Описание ошибки */
<input type='hidden' name='timestamp' value='{{error.timestamp}}' /> /* Скорректированное время для повторного запроса */
- Выполняем метод login с логином и паролем, взятыми из ответа с формой (
name='login'
иname='password'
), а параметрencryptPassword
указываем какfalse
См. также: