Я был бы очень благодарен за любую помощь в этом вопросе.
Я потратил 10 часов, пробуя различные настройки.
Я показываю неотредактированные данные в моей личной учетной записи Google – эта учетная запись не будет использоваться для производства – скажите, пожалуйста, если это представляет собой личный риск для меня.
Я работаю в Android Studio Otter 3
Я использую демонстрационное приложение net.openid.appauthdemo, которое поставляется с библиотекой https://github.com/openid/AppAuth-Android
Я только изменил:
build.gradle(app)
AndroidManifest.xml
auth_config.json
Многие настройки конечной точки были взяты из руководства.
https://aster.cloud/2022/01/22/authenti ... h-library/
Если я удалю данные для приложения, мне откроется экран входа в Google.

После входа в систему (кнопка «Начать авторизацию») я получаю сообщение об ошибке несоответствия

Here are the settings I have entered for auth_config.json
{
"client_id": "1068905132026-8r52fku688scud8l9i1lgekhc35eenik.apps.googleusercontent.com",
"redirect_uri": "https://appauth.demo-app.io/oauth2redirect",
"end_session_redirect_uri": "https://appauth.demo-app.io/oauth2redirectend",
"authorization_scope": "openid email profile",
"discovery_uri": "",
"authorization_endpoint_uri": "https://accounts.google.com/o/oauth2/v2/auth",
"token_endpoint_uri": "https://www.googleapis.com/oauth2/v4/token",
"registration_endpoint_uri": "https://oauth-redirect.googleuserconten ... -485201-p5",
"user_info_endpoint_uri": "https://www.googleapis.com/auth/userinfo",
"end_session_endpoint": "https://accounts.google.com/o/oauth2/revoke",
"https_required": true
}
Here is the only part of AndroidManifest.xml that I might have changed
This is the only part of build.gradle (module app) that I might have changed
android {
namespace 'net.openid.appauthdemo'
defaultConfig {
applicationId 'net.openid.appauthdemo'
project.archivesBaseName = 'appauth-demoapp'
vectorDrawables.useSupportLibrary = true
// Make sure this is consistent with the redirect URI used in res/raw/auth_config.json,
// or specify additional redirect URIs in AndroidManifest.xml
manifestPlaceholders = [
'appAuthRedirectScheme': 'https://appauth.demo-app.io/oauth2redirect'
]
}
Here is the debug certificate
(I am concerned that the Google ID platform requests the SHA-1 certificate fingerprint but in any examples the reference is to SHA-256)
PS C:\users\Tony\.android> keytool -keystore debug.keystore -list -v
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: androiddebugkey
Creation date: 17 Apr 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 198cc1a2
Valid from: Wed Apr 17 07:28:17 AWST 2019 until: Fri Apr 09 07:28:17 AWST 2049
Certificate fingerprints:
SHA1: 7B:86:D1:7B:EA:41:22:3A:60:D2:F6:72:B0:7A:57:FA:56:1F:8E:8F
SHA256: 33:06:4F:59:8C:FA:BC:EC:3C:49:41:DC:39:09:EF:25:0C:2D:96:BD:1E:79:F5:CE:76:0F:96:B6:60:83:5F:45
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 92 FD 58 F0 2C 26 4B B1 0E CB 41 A7 D2 B7 B1 75 ..X.,&K...A....u
0010: 3E 30 4A 56 >0JV
]
]
Вот веб-клиент, который я настроил в Google Cloud Platform для ввода uri перенаправления.

Вот идентификатор клиента Android, который я настроил в Google Cloud Platform.
/>URI перенаправления не может быть введен для Android ClientId

Мой начальник спросил ChatGTP: "Почему в учетных данных Google Android нет места для ввода Uri перенаправления" и получил следующий ответ:
Почему Вы не видите прямого места для URI перенаправления для приложений Android:
For mobile apps (Android), the redirect URI is handled internally by Google Play Services and the Google API Client.
Unlike web apps, you don’t have to manually specify a redirect URI in the Google Cloud Console. The OAuth flow for Android is based on Google's internal system, which automatically knows how to redirect your app after authentication.
Following this I went back to the AppAuth_android_master credential,went to advance settings and ticked "Enable custom URI scheme"
Затем в приложении для Android я установил auth_config.json:
"redirect_uri": "net.openid.appauthdemo/oauth2redirect",
"end_session_redirect_uri":net.openid.appauthdemo/oauth2redirect",
и в AndroidManifest.xml
Но все равно не повезло
Отвечая на мой собственный вопрос:
- Android Studio при вводе кода программы выдавала ошибку «хост отсутствует» в настройке данных фильтра намерений для действия перенаправления - это заставило меня отказаться от структуры примера в исходном руководстве, которому я следовал
, и попробовать более сложные настройки - оказалось, что код все равно будет компилироваться и работать, даже несмотря на этот параметр было помечено как ошибка. - Я перепутал значения «имя пакета» и «идентификатор приложения», и между этими двумя терминами в Google Cloud Console на экране ввода учетных данных существует некоторая двусмысленность.
- Во время разработки (когда настройки изменяются и тестируются) необходимо удалить данные и кеш приложения, а затем переустановить приложение — чтобы новые настройки вступили в силу. распознан.
"redirect_uri": "net.openid.appauthdemo:/oauth2redirect"
а вот фильтр активности перенаправления
Подробнее здесь: https://stackoverflow.com/questions/798 ... i-mismatch
Мобильная версия