我想知道是否有人对此有任何答案。如果有人按照这里的快速入门:
https://developers.google.com/calendar/api/quickstart/go
我们可以从用户那里获得授权,允许我们使用他们的日历进行操作。
从配置返回的HTTP客户端似乎负责调用刷新标记并使客户端保持最新。
首先,作为一个附带的问题,有人知道这可以持续多久吗?我在某个地方的一个文档中读到,对于未发布的应用程序/项目,它是7天,但它没有指定一个时间表。它是无限期的,还是会在某个时候到期(即刷新令牌在30天后用完)。这是可以避免的吗?
现在,真实的的问题是-如果你把服务完全关闭,即更新,并重新启动它,有没有办法重新获得授权?在教程中,它写一个代码到磁盘和阅读需要。在我的情况下,我只是持有参考的东西,我需要在应用程序中,所以很明显,当服务关闭时,我必须重新授权。然后我尝试将代码写入永久卷上的磁盘,并从该卷重新读取,但它没有得到授权-我猜是因为服务的新示例有一个新的oauth配置示例,它可能不接受旧代码?
在任何情况下,我想知道是否有人知道一种方法,使这一点持续通过系统重新启动,或者如果这里唯一的真实的选择是移动日历服务客户端到一个小的微服务的一方,我们不重新启动,并联系它从其他地方需要。
提前感谢!
1条答案
按热度按时间qltillow1#
此处记录了刷新令牌的过期时间。正如您所注意到的,处于“测试”状态的项目的令牌将在7天后过期。生产中的项目的刷新令牌无限期持续,但在某些情况下,它们可能会失效(用户撤销访问,令牌在6个月内未使用,帐户具有超过50个有效令牌,虽然没有提到,但是如果你改变了OAuth的范围,你可能也需要重新授权。
这意味着只要您保留刷新令牌并且不满足任何失效条件,您就应该能够继续使用它们来获取新的访问令牌,即使您的服务暂时关闭。但是正如文档中所提到的,您应该预料到令牌停止工作的可能性,并重定向用户以重新授权。
我的猜测是,在你的情况下,刷新令牌由于某种原因停止工作(可能是7天的限制),应用程序只是试图使用同一个过期的令牌。Google文档中的快速入门通常处理令牌文件的创建和如何重用它,但它们不包括你有一个无效的令牌和需要重新授权的部分。
参考文献: