我已按照 Nick Johnson 在 Authenticating against App Engine from Android 上的教程进行操作
有没有办法通过联合登录获得相同的工作流程(无网络登录)(即使支持仅限于 Google 帐户)?
[编辑] 附加信息
当前设置包括:
- App Engine 的
UserService
配置为联合登录(openId..gmail、aol、myspace?,...) - Facebook (OAuth)
- 推特 (OAuth)
所有身份验证类型都包含在 UserService
中,因此我可以调用 UserService.getCurrentUser()
(类似于 Appengine 的 UserService,但支持 twitter 和 facebook)。
帐户可以将多种身份验证方法链接在一起。
到目前为止,客户端都是基于网络的,一切都运行良好。 :D
我愿意:
- 添加公共(public) API(用于网络和 native 移动应用),
- 在内部将 API 用于 native 移动应用。
有哪些选项?
我正在考虑将身份验证限制为 Android 应用程序的 Google 帐户,希望避免基于网络的登录屏幕。即便如此,支持 facebook 和 twitter 的 web Api 还是不错的。
最佳答案
不,OpenID 是一种基于浏览器的身份验证标准 - 它依赖于将用户定向到外部身份验证页面,然后返回到应用程序页面。
您可以通过 Dialog
内的 WebView
执行此操作,以获得流畅的用户体验。查看LeanEngine示例实现的开源项目:server和 client .服务器有点复杂,因为它同时支持 Facebook 和 OpenID 登录。仅 OpenID 登录会更简单。您基本上只需要客户端示例。
但是,如果您不需要 OpenID 并且愿意将您的用户限制为 Google 帐户,那么您可以使用 Google ClientLogin API .一个example usage .
关于android - 使用联合登录 (OpenID) 从 Android 应用程序对 App Engine 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8748502/