Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 7 Следующий »

 

Важно

Модуль авторизации через социальные сети «Внешняя аутентификация» является платным модулем. Стоимость и условия покупки вы можете уточнить в Скайп-чате с вашим менеджером ОТ или на сайте https://box.otcommerce.com/prices-and-promo#3

Проверка наличия модуля «Внешняя аутентификация»

Получить список подключенных модулей можно одним из этих методов:

если в списке есть ExternalAuthentication, значит модуль «Внешняя аутентификация» включен и вам доступна авторизация через соцсети.

Получение данных по соцсетям

Используем метод GetExternalAuthenticationSystemInfoList для получения списка соцсетей, который передаст вам идентификаторы, названия и картинки соцсетей (AuthenticationSystemInfoListAnswer).

Авторизация

Метод GetExternalAuthenticationInfo используется для инициации авторизации. В него передаем идентификатор соцсети и адрес возврата (такой, какой вы сможете обработать на своем сайте или перехватить в браузере), и в итоге получите адрес, на который нужно отправить браузер пользователя (AuthenticationInfoAnswer).

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

  • Если всё успешно, будет параметр sessionId, в котором готовая сессия пользователя. Запоминаем ее и используем далее.
  • Если соцсеть не выдала email, то в параметрах будет error=email_required и contextId, тогда вам нужно:
    • Запросить у пользователя почту.
    • Передать (вместе с контекстом, полученным ранее) в метод ConfirmExternalAuthentication — а в ответ получите сессию (SessionIdAnswer).
    • Если в ответ получена ошибка ValidationError/PasswordRequiredForFinishExternalAuthentication, запросить у пользователя дополнительно пароль к его аккаунту.
    • Повторить вызов метода ConfirmExternalAuthentication еще вместе с введенным паролем.
  • Если же произошла какая-то иная ошибка, то в параметрах будет просто error, его содержимое можно показать пользователю, или просто показать «Ошибка при авторизации».
  • Нет меток