当前位置: 首页 > 知识库问答 >
问题:

appengine上的gmail oauth2授权无效

公羊喜
2023-03-14

正如通常发生的那样,客户更改了他们的G Suite电子邮件密码,我们使用该密码发送电子邮件(在Java@AppEngine上)。令牌如预期的那样被撤销了,并且我们设法使所有的东西都能在DEV和UAT环境中正常工作,然而PROD由于某种原因仍然得到了臭名昭著的“无效授权”。我想知道数据存储中是否有一些缓存保存原始凭据?Stackdriver不允许对方法调用求值,因此无法看到里面的内容。我们怀疑这与缓存有关,但重新启动GAE实例(通过重新部署)并没有解决这个问题。欢迎任何建议!

这有点来自日志:

原因:com.google.api.client.auth.oauth2.TokenResponseException:400{“错误”:“invalid_grant”}在com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.from)在com.google.api.client.auth.oauth2.TokenRequest.executeunparsed(TokenRequest.java:287)在com.google.api.client.auth.oauth2.Credential.execute(TokenRequest.java:307)在com.google.api.client.auth.oauth2.Credential.execute(api.client.auth.oauth2.credential.refreshtoken(credential.java:489)在com.google.api.client.auth.oauth2.credential.intercept(credential.java:217)在com.google.api.client.http.httprequest.execute(httprequest.java:859)在com.google.api.client.googleapis.services.abstractgooglelientrequest.java:419)在le.api.client.googleapis.services.abstract执行(abstractGoogleClientRequest.java:469)

共有1个答案

邢飞白
2023-03-14

不知道这一次是如何运作的,但这个顺序似乎起作用了:

  1. 暂停队列,以避免“旧”令牌尝试重新发送电子邮件时被反复缓存
  2. 从数据存储中删除存储的凭据
  3. 刷新memcache
  4. 重新配置您的应用程序,以授权它访问您的gmail(实质上获取数据存储的新凭据)
  5. 恢复队列并享受
 类似资料:
  • 登录时我总是得到无效的授权类型。我使用的是Laravel 7和passport 8.4。 我可以确认,我创建的client_secret没有错误运行php artisan护照:安装,但我找不到任何可能性,为什么获取访问令牌和刷新令牌不工作。 我使用自定义用户提供商,正确地设置在配置,我注意到如果我改变grant_typeclient_credentials它将只是工作,但没有刷新令牌,我想要什么。

  • 我遇到了使用文档签名 API 的第一个障碍,需要一些帮助。 我将docusignrestapi集合导入到Postman中。我设置了iKey、iSec、encodedKeys和codeFromUrl变量。 当尝试发送'01-授权代码授予访问令牌'post API时,我每次都得到以下响应。 我尝试从Postman中删除所有内容,包括环境,并从DocuSign中删除该应用程序,然后重新开始,以便我的所有

  • 在Appengine上使用HikariCP作为连接池部署Spring Boot应用程序时,在执行一些请求时,我会遇到一些与数据库(线程)相关的错误: 然后我发现AppEngine只允许应用程序使用它的ThreadFactory创建线程。因此,我确保将Hikari配置为使用AppEngine的线程工厂,如下所示:

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 接口说明 上传License授权文件 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /wish3dearth/api/access/v1.0.0/updateLicenseInfo 是否需要登录 否 请求字段说明 参数 类型 请求类型 是否必须 说明 license undefined body 是 License信息文件 响应字

  • 接口说明 上传License授权文件 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /wish3dearth/api/access/v1