Аутентификация конечной точки Google Cloud на моем клиенте Android: аудитория не разрешена, и пользователь Oauth Framework не соответствует пользователю oauth-токена
Я пытаюсь получить доступ к развернутому API приложения backend, используя поддержку OAuth2.0 из моего Android-клиента.
Аутентификация работает нормально из проводника API, используя авторизованный адрес электронной почты
Что касается Android, я использую метод выбора учетных данных / учетной записи, описанный здесь: https://developers.google.com/appengine/docs/python/endpoints/consume_android
Но я получаю код состояния 403, говорящий, что доступ запрещен, и следующее в журнале appengine при доступе из клиента Android:
D 12:52:53.042 Checking for id_token.
W 12:52:53.046 Audience not allowed: 901326459160-vnpoik6ebefbnhtagqns7r0qlkt31gdo.apps.googleusercontent.com
D 12:52:53.047 Checking for oauth token.
D 12:52:53.049 Oauth framework user didn't match oauth token user.
I 12:52:53.050 Access rejected from none user.
Что происходит, потому что идентификатор клиента веб-приложения был включен в белый список идентификаторов клиентов, а также идентификатор клиента Android?....
2 ответа
Я понял, что было не так.... Электронная почта веб-клиента передавалась как аудитория в методе конечной точки Api вместо идентификатора веб-клиента
Судя по ошибке, ваше приложение передает неверный токен пользователя или бэкэнд-API, поэтому показывает, что "пользователь Oauth Framework не соответствует пользователю токена Oauth. Я предлагаю вам проверить clientID, который вы используете в код для "Настройка клиента Android для предоставления учетных данных" на этой странице и посмотрите, совпадает ли идентификатор клиента (Android) с консолью разработчика.