Android Oauth2 redirect_uri_mismatchAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Android Oauth2 redirect_uri_mismatch

Сообщение Anonymous »

Я знаю, что это распространенная проблема, и я прочитал много статей о том, как ее решить, но боюсь, что я все еще застрял.

Я был бы очень благодарен за любую помощь в этом вопросе.

Я потратил 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»