3

我有一个与 GAE 服务器通信的桌面 Java 应用程序。客户端应用程序使用 OAuth 1.0 通过提供的端点(appname.appengine.com/_ah/OAuthGetAccessToken 等)使用 OAuth 1.0 登录服务器,其中 consumerkey 和 consumersecret 设置为“匿名”,范围设置为 GAE 域。登录过程似乎工作正常:

  1. 检索请求令牌
  2. 让用户访问生成的身份验证 URL
  3. 询问用户验证码
  4. 检索访问令牌

至此,我有了一个看似有效的令牌和令牌秘密。如果我使用这些来签署对 GAE 服务器的请求,我会在识别用户时收到OAuthRequestException :

OAuthService oauthService = OAuthServiceFactory.getOAuthService();
try {
    user = oauthService.getCurrentUser();
    if (user != null) {
        ri.userName = user.getEmail();
    }
} catch (OAuthRequestException t) {
    t.printStackTrace();
}

这一直工作到今天早上。我正在使用Chrome to Phone GAE 后端的修改版本。我注意到Chrome to Phone 也有同样的问题:我无法再登录服务,所以我不认为这是客户端的错误。登录信息不会显示在Google Connected Sites、Apps 和 Services 控制台中。这是 Chrome 到 Phone 的 GAE 服务中受影响线路的链接:Chrome2Phone 受影响的源

我已经尝试在 Google API 控制台中注册应用程序并提供了消费者密钥和秘密,结果相同。

4

2 回答 2

4

我们对身份验证系统进行了一些后端更改,最终导致与依赖身份验证系统的 App Engine 代码不兼容。这似乎是一个相当简单的问题,我们正在进行修复。我们还没有确切的解决时间表,但预计会很快。


更新:该修复程序已于太平洋标准时间晚上 8 点左右投入生产。谢谢大家的耐心。

于 2013-02-07T22:37:59.947 回答
2

这并不完全是一个答案,但我在使用内置 oauth 提供程序库 ( google.appengine.api.oauth) 的 python 应用程序引擎应用程序上看到了相同的新行为。现有保存的令牌继续工作,但请求新令牌然后使用它调用受保护的服务会导致InvalidOAuthTokenError. 这是使用未更改的消费者和提供者代码,直到昨晚(大约在 CST 午夜)之前都可以完美运行。

于 2013-02-06T17:02:19.057 回答