【问题标题】:GoogleAPI oauth2 refresh token expires in 1 hourGoogleAPI oauth2 刷新令牌在 1 小时后过期
【发布时间】:2019-03-06 05:19:36
【问题描述】:

我在我的应用程序中使用 Google API,并且 oauth2 刷新令牌在 1 小时后过期。我正在使用此刷新令牌来执行每天运行的任务。我使用 OAuth2 游乐场创建刷新令牌。有没有办法延长刷新令牌的过期时间? (1 个月)

【问题讨论】:

    标签: oauth google-api google-oauth oauth2-playground


    【解决方案1】:

    我认为您在这里混淆了您的术语。

    根据Oauth2,访问令牌在一小时后过期。访问令牌用于请求访问 api 并返回您需要的数据。无法将访问令牌的生命周期延长到一小时以上。您需要使用刷新令牌来请求新的访问令牌。

    刷新令牌的寿命极长,通常不会过期。刷新令牌用于请求新的访问令牌。如果一个在六个月内未使用,大部分刷新令牌不会过期,尽管谷歌会自动将其过期。此外,如果用户删除了您的访问权限,那么刷新令牌也将自动过期。

    如果您使用仅用于测试目的的 Outh2 Playground 创建刷新令牌,它也会过期。

    如果您使用 oauth2 游乐场创建刷新令牌,那么您不应该这样做,您应该创建自己的应用程序来请求令牌。

    【讨论】:

    • 感谢您的解释。是的,我正在使用 Outh2 Playground 来创建刷新令牌。我将不得不编写一个请求令牌的逻辑。
    【解决方案2】:

    如前所述,使用 OAuth 2.0 Playground 创建的刷新令牌会在几个小时后自动撤销,因为 Playground 主要用于测试目的。但是,您可以将 OAuth 操场配置为使用您自己的应用程序凭据(使用右上角的“轮式”图标)。如果您使用自己的应用凭据,则不会撤销刷新令牌。

    也就是说,您似乎想要运行访问 Google API 的后台服务。为此,如果您不访问特定用户的数据,您可能需要使用服务帐户。

    【讨论】:

    • 您能否解释一下何时使用 OAuth2 服务帐户以及何时使用 OAuth2 桌面应用程序?我想每天上传离线转化数据 (developers.google.com/google-ads/api/docs/samples/…)。在这种情况下,我需要服务帐户吗?
    • @Nicolas - 如果 OAuth2 失败,请使用服务帐户,我一直在使用带有 SP 的 OAuth2,但一个小时后凭据仍然失败。关于我能做些什么来解决这个问题的任何想法?
    • 这可能是您的访问令牌。访问令牌始终仅在最长 1 小时内有效。当/之前发生这种情况时,您应该使用您的服务帐户获取新的访问令牌。
    猜你喜欢
    • 2018-04-07
    • 1970-01-01
    • 2017-12-02
    • 2021-05-09
    • 2017-08-17
    • 2020-06-07
    • 2017-11-15
    • 2019-12-14
    • 2020-10-05
    相关资源
    最近更新 更多