Аутентификация пользователя через социальные сети
Вы можете реализовать в вашем приложении аутентификацию пользователя с помощью его аккаунта в социальной сети. Если пользователь входит в систему впервые через аккаунт социальной сети, новая учетная запись создается автоматически. Пользователю не требуется вводить имя пользователя, email-адрес или другие данные.
Coциальные сети:
- Аутентификация с помощью веб-сервисов. В этом случае приложение открывает в браузере форму для подтверждения аутентификации через выбранную социальную сеть. Способ подходит как для мобильных, так и для настольных приложений.
- Нативная аутентификация. В этом случае аутентификация выполняется через приложение социальной сети на устройстве пользователя. Способ подходит только для мобильных приложений.
Социальные сети могут быть как основным способом аутентификации в вашем приложении, так и альтернативным.
Если аккаунт социальной сети является альтернативным способом аутентификации, для автоматической привязки аккаунта к существующей учетной записи должны быть выполнены следующие условия:
- Пользователь, зарегистрированный с помощью имени пользователя или email-адреса, входит в приложение через аккаунт социальной сети.
- Социальная сеть возвращает email-адрес.
- Email-адрес из социальной сети совпадает с email-адресом, указанным пользователем при регистрации в вашем приложении.
Вы также можете реализовать ручную привязку аккаунта социальной сети.
Инструкции
Поддерживается авторизация через следующие социальные сети:
- Amazon
- Apple
- Baidu
- Battle.net
- Discord
- GitHub
- Kakao
- MSN
- Mail.ru
- Microsoft
- Naver
- Odnoklassniki
- PayPal
- Steam
- Twitch.tv
- VK
- Vimeo
- Xbox Live
- Yahoo
- Yandex
- YouTube
Чтобы настроить аутентификацию через веб-сервисы:
- В интерфейсе приложения добавьте кнопки для аутентификации через социальные сети.
- Настройте социальные сети для выбранного варианта авторизации в Личном кабинете.
- Реализуйте логику аутентификации на стороне приложения.
Настройка социальных сетей для варианта авторизации в Личном кабинете Xsolla
- Откройте проект в Личном кабинете.
- В боковом меню выберите пункт Login.
- Нажмите Настроить в панели нужного варианта авторизации.
- Перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
- Подключите социальные сети, через которые пользователи смогут регистрироваться и входить в приложение. Это можно сделать одним из следующих способов:
- Чтобы подключить нужную социальную сеть, нажмите значок ⚙ и выберите пункт Подключить.
- Чтобы подключить сразу несколько социальных сетей, выберите нужные панели (рамки панелей станут зелеными). Затем в раскрывающемся меню Управление выберите пункт Подключить.
- Чтобы подключить сразу все доступные социальные сети, нажмите Выбрать все. Затем в раскрывающемся меню Управление выберите пункт Подключить.
Интеграция на стороне приложения
- Вызовите метод библиотеки Login
startSocialAuth
. - Внутри метода
onActivityResult
вызовите метод библиотеки LoginfinishSocialAuth
.
Нативная авторизация позволяет пользователям войти в ваше приложение с помощью аккаунта социальной сети, настроенного на мобильном устройстве.
При первом входе пользователя запускается приложение социальной сети, которое запрашивает разрешение на аутентификацию пользователя. В дальнейшем аутентификация будет выполняться автоматически, без участия пользователя.
В настоящее время для SDK реализована нативная авторизация через следующие социальные сети:
Чтобы настроить нативную авторизацию:
- Настройте приложение в личном кабинете разработчика социальной сети:
- В интерфейсе приложения добавьте кнопки для аутентификации через социальные сети.
- Для авторизации через Facebook:
- Зарегистрируйтесь и создайте новое приложение.
- Настройте страницу приложения в личном кабинете разработчика Facebook.
- Для авторизации через Google настройте проект в Google API Console.
- Для авторизации через WeChat:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Для авторизации через QQ:
- Зарегистрируйтесь и создайте новое мобильное приложение.
- Отправьте приложение на проверку.
- Настройте авторизацию через социальные сети на стороне Xsolla:
- Для Facebook и Google настройте социальные сети в Личном кабинете.
- Для WeChat и QQ обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.
- Установите библиотеки для авторизации через социальную сеть. Для этого откройте файл
build.gradle
вашего приложения и в разделе зависимостей добавьте следующие строки, где<version_number>
— необходимая версия библиотеки:- Для авторизации через Facebook:
- groovy
implementation 'com.xsolla.android:login-facebook:<version_number>'
- Для авторизации через Google:
- groovy
implementation 'com.xsolla.android:login-google:<version_number>'
- Для авторизации через WeChat:
- groovy
implementation 'com.xsolla.android:login-wechat:<version_number>'
- Для авторизации через QQ:
- groovy
implementation 'com.xsolla.android:login-qq:<version_number>'
- Инициализируйте библиотеку Login с указанием следующих параметров:
facebook_id
— ID приложения из личного кабинета разработчика Facebook;google_id
— ID клиента из Google API Console для веб-приложения;wechat_id
— AppID из личного кабинета разработчика WeChat;qq_id
— AppID из личного кабинета разработчика QQ.
Пример инициализации библиотеки при аутентификации через OAuth 2.0:
- kotlin
val loginConfig = LoginConfig.OauthBuilder()
.setProjectId("login-project-id")
.setOauthClientId("oauth2-client-id")
.setSocialConfig(XLogin.SocialConfig(
facebookAppId = "facebook_id",
googleServerId = "google_id",
wechatAppId = "wechat_id",
qqAppId = "qq_id"
))
.build()
XLogin.init(applicationContext, loginConfig)
- Для авторизации через WeChat доработайте код приложения:
- Добавьте в пакет
<your_package_name>.wxapi
классWXEntryActivity
, где<your_package_name>
— название пакета вашего приложения:
- Добавьте в пакет
- kotlin
package <your_package_name>.wxapi
import android.app.Activity
import android.os.Bundle
import com.tencent.mm.opensdk.modelbase.BaseReq
import com.tencent.mm.opensdk.modelbase.BaseResp
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.xsolla.android.login.util.WechatUtils
class WXEntryActivity : Activity(), IWXAPIEventHandler {
private lateinit var iwxapi: IWXAPI
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
iwxapi = WXAPIFactory.createWXAPI(this, WechatUtils.wechatAppId, false)
iwxapi.handleIntent(intent, this)
finish()
}
override fun onReq(req: BaseReq?) {
}
override fun onResp(resp: BaseResp) {
WechatUtils.wechatResult = resp
}
}
- Добавьте в файл
AndroidManifest.xml
следующий элемент:
- Добавьте в файл
- kotlin
<activity
android:name="<your_package_name>.wxapi.WXEntryActivity"
android:exported="true"
android:launchMode="singleTask" />
Настройка страницы приложения в личном кабинете разработчика Facebook
- Перейдите к настройкам приложения в личном кабинете разработчика Facebook.
- Перейдите Настройки > Основное.
- Нажмите Добавить платформу и выберите Android.
- В поле Название пакета Google Play укажите имя пакета вашего Android-приложения.
- В поле Название класса укажите полное имя класса Activity по умолчанию.
- Сгенерируйте хеш-ключ и укажите его в поле Ключевые хеш-адреса.
- Нажмите Сохранить изменения.
Для дальнейшей настройки нативной авторизации вам понадобятся ID приложения и Секрет приложения, которые можно найти в настройках приложения в разделе Настройки > Основное.
Настройка проекта в Google API Console
- Перейдите в Google API Console.
- Нажмите Создать проект.
- Укажите Название проекта и Местоположение, нажмите Создать.
- Перейдите в созданный проект и в боковом меню нажмите Окно запроса доступа OAuth.
- Установите флажок Внешнее и нажмите Создать.
- Укажите необходимые параметры и нажмите Сохранить.
- В боковом меню выберите Учетные данные.
- Создайте клиент OAuth 2.0 для вашего Android-приложения:
- Нажмите Создать учетные данные и выберите пункт ID проекта OAuth.
- В поле Тип приложения укажите Android.
- Укажите Имя.
- В поле Название пакета укажите имя пакета вашего Android-приложения.
- Сгенерируйте SHA-ключ.
- В поле Контрольная сумма сертификата SHA-1 укажите SHA-ключ, сгенерированный на предыдущем шаге.
- Нажмите Создать.
- Нажмите OK.
- Создайте клиент OAuth 2.0 для веб-приложения:
- Нажмите Создать учетные данные и выберите пункт ID проекта OAuth.
- В поле Тип приложения укажите Веб-приложение.
- Укажите Имя.
- Нажмите Добавить URI в разделе Разрешенные URI перенаправления и укажите URI
https://login.xsolla.com/api/social/oauth2/callback
. - Нажмите Создать.
- Нажмите OK.
Для дальнейшей настройки нативной авторизации вам понадобятся ID клиента и Секретный код клиента, которые можно найти в настройках IDа клиента для веб-приложения.
Настройка социальных сетей для варианта авторизации в Личном кабинете Xsolla
- Откройте проект в Личном кабинете.
- В боковом меню выберите пункт Login.
- Нажмите Настроить в панели нужного варианта авторизации.
- Перейдите к блоку Аутентификация и выберите раздел Авторизация через социальные сети.
- Чтобы подключить социальную сеть, в карточке социальной сети нажмите значок ⚙ справа от названия и выберите пункт Подключить.
Интеграция на стороне приложения
- Вызовите метод библиотеки Login
startSocialAuth
. - Внутри метода
onActivityResult
вызовите метод библиотеки LoginfinishSocialAuth
.
Полезные ссылки
Последнее обновление: 31 июля 2024Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.