Google OAuth2 в приложении Ma c Catalyst: "invalid_grant" при обмене кодом авторизации с refresh_token - PullRequest
1 голос
/ 21 января 2020

У нас есть приложение, которое успешно выполняет вход в Google с разных клиентов: веб, iOS приложение, Android приложение. Сейчас мы пытаемся интегрировать Google Sign-in в Ma c Catalyst версии нашего iOS приложения.

Мы используем гибридный поток, мы генерируем код авторизации на клиент и обменять его на сервере для получения доступа и обновления sh токена.

Я нашел эту библиотеку https://github.com/elsesiy/GAppAuth, и я использую те же учетные данные, которые использовались для iOS app.

Перенаправление в приложение после входа в систему по пользовательской схеме работает нормально, и я могу получить код авторизации.

Но когда я делюсь код авторизации с моего сервера, я получаю сообщение об ошибке на запрос об обмене кодом аутентификации для получения access_token и refresh_token:

POST https://accounts.google.com/o/oauth2/token
Content-Type: application/x-www-form-urlencoded

Параметры:

  • код (отправлено клиентом)
  • client_id (идентификатор клиента сервера)
  • client_secret (секрет сервера)
  • grant_type = "authorization_code"

redirect_uri не добавляется для запроса собственного клиента. * 1 037 *

Ответ:

400 {'error': 'invalid_grant', 'error_description': 'Bad Request'}

Обратите внимание, что точно такой же поток работает на iOS. Я также проверил другой тип учетных данных (собственные клиенты, тип: Другое)

Есть идеи, что не так и как это исправить?

I подозреваю, что библиотеки GA для входа в систему делают что-то, что не реализовано в GAppAuth (см. https://github.com/openid/AppAuth-Android/issues/293).

...