Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

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

...

Если для указанной соцсети метод GetExternalAuthenticationInfo вернул в ответе MobileApplicationId (AuthenticationInfoAnswer)ответе MobileApplicationId, и если ваше приложение хочет реализовать нативную авторизацию, то её можно провести через интеграцию входа в мобильное приложение, в ином случае, если в ответе нет MobileApplicationId или нет возможности реализовать нативную авторизацию, используется обычная схема авторизации через адрес возврата (redirect url), как в предыдущем разделе..

...

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

...