编程语言
首页 > 编程语言> > java – 使用Google Apps Engine端点的OAuth登录停止工作

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

作者:互联网

我有一个与GAE服务器通信的桌面Java应用程序.客户端应用程序使用带有路标的OAuth 1.0通过提供的端点登录服务器
(appname.appengine.com/_ah/OAuthGetAccessToken等),其中consumerkey和consumersecret设置为“anonymous”,范围设置为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 affected source.

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

解决方法:

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

标签:java,google-app-engine,oauth,google-oauth,signpost
来源: https://codeday.me/bug/20190825/1723890.html