我有一个与GAE服务器通信的桌面Java应用程序。客户端应用程序使用带有路标的OAuth 1.0通过提供的端点登录服务器 (appname.appengine.com/_ah/OAuthGetAccessToken等),其中consumerkey和consumersecret设置为“anonymous”,范围设置为GAE域。登录过程似乎正常工作:
此时,我有一个看似有效的令牌和令牌秘密。如果我使用这些来签署对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密钥和密码,结果相同。
答案 0 :(得分:4)
我们对身份验证系统进行了一些后端更改,最终与依赖身份验证系统的App Engine代码不兼容。这似乎是一个相当简单的问题,我们正在修复。我们尚未确定解决方案的确切时间表,但预计很快就会解决。
更新:修复程序已于太平洋标准时间晚上8点左右投入生产。谢谢大家耐心等待。
答案 1 :(得分:2)
这不是一个答案,但我在使用内置oauth提供程序库(google.appengine.api.oauth
)的python应用程序引擎应用程序上看到了相同的新行为。现有已保存的令牌继续有效,但请求新令牌然后使用它来调用受保护的服务会产生InvalidOAuthTokenError
。这与消费者和提供商代码保持不变,直到昨晚(大约午夜CST)才能完美运行。