Я пытаюсь реализовать однократный кодовый знак в потоке в моей системе. Приложение содержит две части: 1) Android приложение, которое запрашивает Google+ для одноразового кода авторизации 2) Rails-сервер, который получает одноразовый код из приложения Android в заголовке запроса и пытается обменять код access_token
и id_token
из Google+Google+ login redirect_uri_mismatch error
Проблема заключается в том, что все работает хорошо, если я получаю одноразовый код с помощью кнопки входа в JavaScript в браузере, но не работает, когда одноразовый код получается приложением Android, а затем отправляется на мой сервер.
Я получаю всегда
"error" : "redirect_uri_mismatch"
настройки моего сервера следующие:
{ "web":
{ "client_id": "MY_REGISTERED_WEB_APP_CLIENT_ID",
"client_secret": "MY_CLIENT_SECRET",
"redirect_uris": ["postmessage"],
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token"
}
}
Теперь, как я запрашивающий одноразовый код из Android приложения: Я использую тот же MY_REGISTERED_WEB_APP_CLIENT_ID
как на моем сервере для запроса одноразового кода. Я не знаю, может быть, мне нужно использовать на другом идентификаторе клиента, который соответствует моему Android-приложению? Но все найденные документы и статьи указывают на зарегистрированное веб-приложение client_id
.
Или, может быть, мой сервер рельсов должен быть настроен не для Интернета, а для установленного типа зарегистрированных в приложениях Google Консоли?
Сейчас относительно redirect_uris
. Я попытался установить несколько redirect_uris
в консоли Google:
- пустое поле
http://localhost:5000
https://localhost:5000
http://my.deployment.url/auth2callback
Веб происхождение в консоли Google устанавливаются - http://my.deployment.url
- http://localhost:5000
Не могу понять, что я делаю неправильно. На самом деле я не понимаю, почему мне нужно установить значения redirect_uris
, так как я не хочу иметь обратные вызовы от Google, я просто хочу получить access_token
и использовать его для доступа к Google+.
ли вы выяснить, в чем проблема? У меня точно такая же проблема. – siyb
@siyb попытается установить 'urn: ietf: wg: oauth: 2.0: oob' как значение параметра redirect_uri. Я сделал это сейчас, и это работает! –
@WalterJr. Спасибо, это похоже на работу;) – siyb