Unified Identity Management logo figure Unified Identity Management logo figure
Поиск Поиск по документации

Интеграция UIDM с социальными сетями

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

Важно
Инструкции актуальны для версий SDK соцсетей на 07.10.2020

VKontakte

  • направить пользователя в браузере по URL:

https://oauth.vk.com/authorize?client_id=<vk_app_id>&display=page&scope=offline&response_type=code&redirect_uri=<sso_redirect_url>&v=5.74
  • параметры URL:

    • <vk_app_id> - идентификатор настроенного приложения в Vkontakte, например, 1234567

    • <sso_redirect_url> - адрес возврата после аутентификации в соцсети, например, https://sso.rooxteam.com

  • пользователь будет перенаправлен соцсетью на указанный адрес возврата, дополненный параметрами:

https://<sso_base_url>/sso/vk_callback.jsp?code=ad569c23d7a54f0128
  • преобразовать параметры по алгоритму для использования в дальнейших запросах к UIDM

Алгоритм вычисления значения параметра <socialData>

Сторонний ресурс возвращает результат попытки авторизации пользователя в виде JSON. Данный JSON необходимо преобразовать и передать в UIDM в качестве параметра <socialData>. Для преобразования необходимо: представить JSON в формате x-www-form-urlencoded, закодировать полученную строку в UTF-8, взять битовое представление строки в кодировке UTF-8, закодировать битовое представление в Base64. Полученная строка из битового представления и есть значение параметра <socialData>.

Пример. Пусть JSON, который отправляет сторонний ресурс, есть

{
  "accessToken": "EAACo4Is07YsBAFygpkjSqxKEN8hOBZAWBlEZD",
  "data_access_expiration_time": 1574223509,
  "expiresIn": 6091,
  "signedRequest": "FmLQr-m3i9F9",
  "userID": "100007547412176"
}

Тогда x-www-form-urlencoded представление будет

accessToken=EAACo4Is07YsBAFygpkjSqxKEN8hOBZAWBlEZD&data_access_expiration_time=1574223509&expiresIn=6091&signedRequest=FmLQr-m3i9F9&userID=100007547412176

Битовое представленние, закодированное в Base64, будет

YWNjZXNzVG9rZW49RUFBQ280SXMwN1lzQkFGeWdwa2pTcXhLRU44aE9CWkFXQmxFWkQmZGF0YV9hY2Nlc3NfZXhwaXJhdGlvbl90aW1lPTE1NzQyMjM1MDkmZXhwaXJlc0luPTYwOTEmc2lnbmVkUmVxdWVzdD1GbUxRci1tM2k5RjkmdXNlcklEPTEwMDAwNzU0NzQxMjE3Ng==