android - 使用联合登录 (OpenID) 从 Android 应用程序对 App Engine 进行身份验证

标签 android google-app-engine oauth openid

我已按照 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

我愿意:

  1. 添加公共(public) API(用于网络和 native 移动应用),
  2. 在内部将 API 用于 native 移动应用。

有哪些选项?

我正在考虑将身份验证限制为 Android 应用程序的 Google 帐户,希望避免基于网络的登录屏幕。即便如此,支持 facebook 和 twitter 的 web Api 还是不错的。

最佳答案

不,OpenID 是一种基于浏览器的身份验证标准 - 它依赖于将用户定向到外部身份验证页面,然后返回到应用程序页面。

您可以通过 Dialog 内的 WebView 执行此操作,以获得流畅的用户体验。查看LeanEngine示例实现的开源项目:serverclient .服务器有点复杂,因为它同时支持 Facebook 和 OpenID 登录。仅 OpenID 登录会更简单。您基本上只需要客户端示例。

但是,如果您不需要 OpenID 并且愿意将您的用户限制为 Google 帐户,那么您可以使用 Google ClientLogin API .一个example usage .

关于android - 使用联合登录 (OpenID) 从 Android 应用程序对 App Engine 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8748502/

相关文章:

java - 谷歌云端点: serve XML

ios - 登录Twitter后如何获取oauth token ?

Android:横向模式下 Nexus 10 上不需要的左/右页边距

java - 添加接口(interface)中的方法都没有注解@android.webkit.JavascriptInterface;它们在 API 17 中不可见

java - 顺序等待语句

java - 应用程序引擎上的 slf4j AccessControlException

google-app-engine - WTForms 不适用于 Google App Engine 1.6.1 和 Python 2.7

php - Codeigniter/i18n URL 的 OAuth 问题

java - 如何使用 java 中的 scribe 通过 withings api 进行身份验证

android - java.lang.IllegalArgumentException : column'_data' does not exist 异常