【问题标题】:Google access token expiration time谷歌访问令牌过期时间
【发布时间】:2012-05-10 14:20:55
【问题描述】:

当我从 Google API 获得 access_token 时,它带有一个 expires_in 值。根据文档,该值表示“访问令牌的剩余生命周期”。

这个值的单位是什么?

【问题讨论】:

  • 因为 99.9% 的时间当你有一个代表时间的数字时,要么是秒,要么是它的细分,而毫秒/微秒对这种情况没有意义?
  • @FrankLaRosa : 有没有办法将访问令牌的到期设置为无限制。
  • 我再重复一遍:如果满意,请接受下面的答案,谢谢!但是这个值的单位是秒。
  • @Hardik,我怎样才能使到期时间不受限制?你找到解决办法了吗?
  • 有趣的是,过期和允许刷新(获取新令牌)之间的关系是什么?如果你等到它过期来获取一个新的令牌,一些 api 调用将在两者之间失败。如果你过早“刷新”,你只会拿回旧令牌。相对于提供的 expires_in,您如何知道何时可以获得新令牌?

标签: oauth-2.0


【解决方案1】:

规范说秒:

https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-22#section-4.2.2

expires_in
    OPTIONAL.  The lifetime in seconds of the access token.  For
    example, the value "3600" denotes that the access token will
    expire in one hour from the time the response was generated.

我同意 OP 的观点,即 Google 不记录这一点是粗心的。

【讨论】:

  • 您必须点击“OAUTH 2.0 ENDPOINTS”标签
【解决方案2】:

看看:https://developers.google.com/accounts/docs/OAuth2UserAgent#handlingtheresponse

上面写着:

响应中包含的其他参数包括expires_intoken_type。这些参数描述了令牌的生命周期 秒...

【讨论】:

  • expires_in指的是什么token:访问token还是刷新token?
  • @AlexanderSupertramp 应该将访问令牌称为刷新令牌,用于在用户离线时获取新的访问令牌。
【解决方案3】:

由于没有公认的答案,我将尝试回答这个:

[s] - seconds

【讨论】:

    【解决方案4】:

    来自Google OAuth2.0 for Client 文档,

    • expires_in -- 令牌失效前剩余的秒数。

    【讨论】:

    • 不在那个页面了,最大值可以输入3900,但实际值是3600。不知道有没有办法拥有一个非到期令牌?
    • 在该页面上查看此链接:developers.google.com/identity/protocols/… 但我不知道如何获得非到期令牌,但我认为使用此类令牌对于安全性来说是一个糟糕的设计。
    • 是的,我的谷歌令牌在几秒钟后过期
    • 总是以秒为单位吗?我在另一个 api 中遇到了一个过期时间为“1611992051”的令牌。以几秒甚至几毫秒为单位似乎是不切实际的。
    猜你喜欢
    • 2014-01-07
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 2014-10-17
    • 2019-07-07
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多