Сервисы аутентификации. Аутентификация с помощью Google Sign-In
В этой статье мы разберем настройку и использование сервиса Google Sign-In с помощью TfgGoogleSignInAuthenticationClient.
Настройка серверной части
- Переходим по ссылке и попадаем н а страницу документации с пошаговым мастером настройки, запускаемым по кнопке Configure a project
- Запускаем мастер и указываем имя проекта (внутреннее именование, невидимое для конечного пользователя)
- Указываем имя продукта для OAuth клиента, которое увидит конечный пользователь в диалоге аутентификации
- Далее в выпадающем списке выбираем тип клиента Android, указываем имя пакета (далее понадобится нам при настройке Delphi приложения) и отпечаток сертификата (получение рассмотрено ниже)
- Завершаем настройку (при надобности сохраните конфигурационные данные клиента)
Получение SHA-1 отпечатка сертификата
При сборке Android приложение подписывается сертификатом разработчика. От типа сборки, режима конфигурации и версии Delphi будет зависеть местоположение файла сертификата от которого мы будет получать отпечаток. Ниже будет рассмотреть вариант получения отпечатка для Debug сборки в режиме конфигурации Development для Delphi 11.
Открываем командуню строку Windows и выполяем следующую команду
keytool -list -v -alias androiddebugkey -keystore "C:\Users\%USERNAME%\AppData\Roaming\Embarcadero\BDS\22.0\debug.keystore"
где %USERNAME% - имя залогиненого пользователя Windows
22.0 - версия Delphi 11 (для Delphi 10.4 этот параметр будет равен 21.0).
Если вы используете собственный сертификат разработчика и режим конфигурации Application Store, подставьте путь к вашему .keystore файлу.
Настройка клиентской части
-
Переходим в настройки Android профиля приложения и назначаем package из шага 4 настройки серверной части
-
Открываем в текстовом редакторе файл AndroidManifest.template.xml из директории проекта и сразу после закрывающего тега </activity> добавляем следующий текст
<!-- Google Play Services version, which are used in this application. This value is checked by Play Services in runtime --> <meta-data android:name="com.google.android.gms.version" android:value="12451000" /> <activity android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:excludeFromRecents="true" android:exported="false" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- Service handling Google Sign-In user revocation. For apps that do not integrate with Google Sign-In, this service will never be started. --> <service android:name="com.google.android.gms.auth.api.signin.RevocationBoundService" android:exported="true" android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" />
Внимание! Если в настройках вашего проекта вклюены опции AdMob Service, Maps Service или Receive push notifications указывать первую строку с версией Google Play Services необязательно, т.к. она добавится автоматически.
Итоговый файл можно посмотреть в прикрепленном демо проекте Authentication - Clients.zip
Спасибо за внимание.
- 4
1 Comment
Recommended Comments