使用Google Apps Engine端点的OAuth登录停止工作

时间:2013-02-06 16:08:08

标签: java google-app-engine oauth google-oauth signpost

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

  1. 检索请求令牌
  2. 让用户访问生成的身份验证网址
  3. 询问用户验证码
  4. 检索访问令牌
  5. 此时,我有一个看似有效的令牌和令牌秘密。如果我使用这些来签署对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到手机GAE服务中受影响线路的链接:Chrome2Phone affected source

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

2 个答案:

答案 0 :(得分:4)

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


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

答案 1 :(得分:2)

这不是一个答案,但我在使用内置oauth提供程序库(google.appengine.api.oauth)的python应用程序引擎应用程序上看到了相同的新行为。现有已保存的令牌继续有效,但请求新令牌然后使用它来调用受保护的服务会产生InvalidOAuthTokenError。这与消费者和提供商代码保持不变,直到昨晚(大约午夜CST)才能完美运行。