3

首先请善待,因为我仍在尝试掌握整个 OpenId/Oauth2.0。

我最近参加了在比利时举行的 Devoxx 2012 会议。Tim Bray展示了使用 Oauth2.0 和 OpenId 的混合方法的能力(我相信它被称为 OpenId Connect)。这是描述它的幻灯片。如果我理解正确,他说 Android 应用程序可以进行身份​​验证(接收令牌)然后为服务器端 Web 应用程序请求令牌。然后,这将允许服务器端接收服务器令牌并检查令牌是否真正有效。验证这确实是来自 Android 应用程序的经过身份验证的用户。完成此操作后,服务器端 Web 应用程序可以安全地与 Android 应用程序交互。

我已经能够使用 Android 应用程序的 com.google.android.gms.auth.GoogleAuthUtil.getToken 进行身份验证。

我在 Google API 控制台 (https://code.google.com/apis/console/) 的 API 访问下创建了一个“已安装应用程序的客户端 ID”。我还在同一个控制台下创建了一个 Web 应用程序,但是当我按照幻灯片进行操作时,我无法获取应该发送到 Web 应用程序的令牌(通过 https)。我确信我只是错过了一个简单的步骤,或者只是不完全理解它,但我将非常感谢任何帮助。

谢谢,

亚历克斯

4

1 回答 1

1

在幻灯片中,范围必须是“audience:server:XXX”。但是在他的博客文章中,Tim Bray 说范围是“audience:server: client_id :XXX”试试这个。

另外,我的错误是在同一个控制台中创建了 2 个客户端 ID,但不在同一个项目中。确保你做对了。

于 2013-01-21T14:01:21.067 回答