ChatGPT解决这个技术问题 Extra ChatGPT

谷歌访问令牌过期时间

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

这个值的单位是什么?

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

C
Community

规范说秒:

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 的观点,即谷歌不记录这一点是粗心的。


您必须单击“OAUTH 2.0 ENDPOINTS”选项卡
s
stewe

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

它说:

响应中包含的其他参数包括 expires_in 和 token_type。这些参数以秒为单位描述令牌的生命周期...


expires_in 指的是什么令牌:访问令牌或刷新令牌?
@AlexanderSupertramp 应该将访问令牌称为刷新令牌,用于在用户离线时获取新的访问令牌。
m
msysmilu

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

[s] - seconds

S
SkyWalker

根据 Google OAuth2.0 for Client 文档,

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


它不在那个页面上,最大值可以输入为 3900,但实际值为 3600。想知道是否有办法拥有一个非到期令牌?
请参阅该页面上的此链接:developers.google.com/identity/protocols/…,但我不知道如何获得非到期令牌,但我认为使用此类令牌是一种糟糕的安全设计。
是的,我的谷歌令牌在几秒钟后过期
总是以秒为单位吗?我在另一个 api 中遇到了一个过期时间为“1611992051”的令牌。在几秒钟内甚至几毫秒内似乎是不切实际的。