我有一个与 GAE 服务器通信的桌面 Java 应用程序。客户端应用程序使用 OAuth 1.0 通过提供的端点(appname.appengine.com/_ah/OAuthGetAccessToken 等)使用 OAuth 1.0 登录服务器,其中 consumerkey 和 consumersecret 设置为“匿名”,范围设置为 GAE 域。登录过程似乎工作正常:
- 检索请求令牌
- 让用户访问生成的身份验证 URL
- 询问用户验证码
- 检索访问令牌
至此,我有了一个看似有效的令牌和令牌秘密。如果我使用这些来签署对 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 控制台中注册应用程序并提供了消费者密钥和秘密,结果相同。