2015-12-07 3 views
1

У меня есть набор инструментальных средств для моего приложения для Android почти полностью - мне просто нужна помощь в настройке конечной точки для ссылки «Trouble Signing In» при аутентификации с именем пользователя & пароль.Набор инструментов идентификации «Trouble Signing In» Android

Я попытался (безрезультатно) выполнить перечисленные шаги here.

Я заметил пару странных вещей:
1) отправлен запрос на мою конечную точку на задней часть на самом деле запрос GET в отличии от POST я ожидал (в соответствии с вышеупомянутыми документами).
2) Когда запрос получает к серверу, после вызова

OobResponse oobResponse = getGitkitClient().getOobResponse(request); 

Я положил кучу свойств oobResponse в мой ответ (используя Spring бутс, так что я просто вернуть jsonified карты). Вот значения я получаю:

{"newEmail": null,"oobResponse":"{\"error\": \"unknown request\"}","email": null,"action": null,"recipient": null} 

Этот объект JSON отображается на устройстве после того, как я нажимаю «Проблемы со входом в» ссылке.

Вот еще некоторые из моей конфигурации, если это уместно:

Android файл манифеста содержит строки:

... 
<meta-data 
    android:name="identitytoolkit.show_providers" 
    android:value="Facebook,Google" /> 
<meta-data 
    android:name="identitytoolkit.use_google_plus" 
    android:value="false" /> 
<meta-data 
    android:name="identitytoolkit.api_key" 
    android:value="myKey" /> 
<meta-data 
    android:name="identitytoolkit.server_client_id" 
    android:value="myClientId" /> 
<meta-data 
    android:name="identitytoolkit.server_widget_url" 
    android:value="https://example.com/callback" />` 
... 

В Застройщика Google консоли для API Идентичность Toolkit, вот как мой URL Конфигурация установить:

Widget URL: https://example.com/callback 
Sign-in Success URL: https://example.com/signInSuccess 
Sign-out URL: https://example.com/signOut 
Send email URL: https://example.com/sendEmail 

Вот мои веб-клиент URL-адрес:

Authorized JavaScript origins: http://example.com 
Authorized Redirect URIs: https://example.com/callback 

Любые идеи, подсказки или ссылки на хорошие учебные пособия, о которых вы знаете? Это одна из последних вещей, которые мне нужно закончить, прежде чем я выйду, пожалуйста, помогите!

Update:
После попытки возиться с этой проблемой еще немного, я подозреваю, что моя проблема может быть вызвана тем, что я использую Spring Boot. Запрос, который Google считает ожидаемым, - это javax.servlet.http.HttpServletRequest, а Spring Boot использует файл org.springframework.web.context.request.WebRequest. Я нашел и включил javax.servlet.http.HttpServletRequest .jar, и теперь я принимаю этот тип запроса в сигнатуре метода, который соответствует пути/обратного вызова. Я также попытался установить тип запроса в подписи к WebRequest и приведения его к типу HttpServletRequest при вызове:

OobResponse oobResponse = getGitkitClient().getOobResponse((HttpServletRequest) request); 

Это до сих пор не работает. :(

ответ

0

<meta-data android:name="identitytoolkit.server_widget_url" android:value="**https://example.com/sendEmail**" />

Значение должно быть ваша URL Widget, а не ваша отправить по электронной почте конечной точки.

Here is the official step by step tutorial об использовании удостоверений Toolkit в Android. Надеется, что это помогает!

+0

Должен ли я тогда справиться с вызовом следующий метод в пути/обратного вызова? OobResponse oobResponse = getGitkitClient().getOobResponse (запрос); У меня есть приложение для Android, поэтому у меня нет фактического виджета. –

+0

Хотя я думаю, что вы правы, это все еще не устраняет проблему. Я уточню свой вопрос с некоторыми из моих подозрений. –

+2

Нет, вы все равно должны обрабатывать вызов API getOobResponse в конечной точке/sendEmail./callback должна быть страница виджетов, на которой размещен javascript gitkit-widget. Виджет необходим, если вы хотите поддерживать такие функции, как сброс пароля, потому что виджет будет вызывать вашу конечную точку отправки электронной почты, где вы отправляете пользователю электронное письмо со ссылкой, полученной вами из getOobResponse(), после того, как будет нажата ссылка «Trouble Signing In» , – yanna

Смежные вопросы