身份工具包"麻烦登录"链接Android

时间:2015-12-07 07:38:15

标签: android spring-boot endpoints google-identity-toolkit

我已经为我的Android应用程序设置了几乎完全的身份工具包 - 我只需要帮助设置链接的端点"麻烦登录"使用用户名进行身份验证时密码。

我已尝试(无效)按照列举的步骤进行here

我注意到一些奇怪的事情:
1)在后端发送到我的端点的请求实际上是一个GET请求,而不是我期望的POST(按照上述文档)。
2)当请求到达我的服务器后,在调用

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

我将一堆oobResponse属性放入我的响应中(使用Spring Boot,所以我只返回一个jsonified Map)。 以下是我得到的值:

{"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" />`
...

在Identity Toolkit API的Google Developer Console中,我的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  

以下是我的网络客户端网址:

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

您了解的有关优秀教程的任何想法,提示或链接?这是我发布之前需要完成的最后几件事之一,请帮忙!

<击>的更新
在试图解决这个问题之后,我怀疑我的问题可能是因为我使用的是Spring Boot。 Google表示他们期望的请求是javax.servlet.http.HttpServletRequest,而Spring Boot使用org.springframework.web.context.request.WebRequest。我找到并包含了javax.servlet.http.HttpServletRequest .jar,现在我接受了与/ callback路径对应的方法签名中的那种请求。我还尝试将签名中的请求类型设置为WebRequest,并在调用时将其转换为HttpServletRequest类型:

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

这仍然无效。 :(

1 个答案:

答案 0 :(得分:0)

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

值应该是您的Widget URL,而不是您的发送电子邮件端点。

Here is the official step by step tutorial在Android中使用Identity Toolkit。希望这有帮助!