我已经为我的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);
这仍然无效。 :(击>
答案 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。希望这有帮助!