Refreshed Token 每个账户可撤销 50 次

Posted

技术标签:

【中文标题】Refreshed Token 每个账户可撤销 50 次【英文标题】:Refreshed Token could be revoked 50 times per account 【发布时间】:2018-02-14 14:50:06 【问题描述】:

我尝试从第三方添加 YouTube 视频,一天后,我成功了。但是在上传视频时需要访问令牌,并且为了获得该访问令牌,用户必须登录。该访问令牌的到期时间是 3600 秒(1 小时)。

现在,我有一些关于此的问题。

    无论如何,我可以通过它刷新访问令牌。 如果有人有 G Suite 帐户,那么到期时间是否有任何特殊值,或者保持不变? 根据documentation,我最多可以拥有 50 个令牌,那么有什么替代方案,这样我就可以在 50 个请求后获得有效的令牌。

【问题讨论】:

【参考方案1】:

要回答第 1 个问题,您可以查看文档 here。

访问令牌会定期过期。您可以刷新访问令牌 不提示用户许可(包括当用户 不存在)如果您请求离线访问关联的范围 使用令牌。

如果您使用 Google API 客户端库,client object 会根据需要刷新访问令牌,只要您配置 用于离线访问的对象。 如果不使用客户端库,则需要在redirecting the user to Google's OAuth 2.0 server 时将access_type HTTP 查询参数设置为offline。在这种情况下,谷歌的 当您exchange an authorization code 获取访问令牌时,授权服务器会返回一个刷新令牌。然后,如果访问令牌 过期(或任何其他时间),您可以使用刷新令牌来获取 一个新的访问令牌。

请求离线访问是任何应用程序的要求 用户不在时需要访问 Google API。为了 例如,执行备份服务或执行操作的应用程序 预定时间需要能够刷新其访问令牌时 用户不存在。默认的访问方式称为在线。

关于 G Suite 帐户,documentation 中已注明 24 小时。注意:

在这个SO post的回答中,讨论了Access Token和Refresh Token的作用。

出于安全原因,我不确定是否有办法更改限制。

为了清楚区分这两个标记并避免混淆, 这是The OAuth 2.0 Authorization Framework中给出的它们的功能:

Access Tokens 由授权服务器在资源所有者的批准下发布给第三方客户端。这 客户端使用访问令牌访问托管的受保护资源 由资源服务器提供。 Refresh Tokens 是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端 并用于在当前访问时获取新的访问令牌 令牌失效或过期,或获取额外访问权限 范围相同或更窄的标记。

【讨论】:

感谢@MαπμQμαπkγVπ.0 的回答。您能否提供有关 G Suite 服务器登录时间的想法。答案中描述的链接给出了客户端登录身份验证时间的答案。

以上是关于Refreshed Token 每个账户可撤销 50 次的主要内容,如果未能解决你的问题,请参考以下文章

Git 第六章 GitHub操作 -- 如何生成GitHub的Token

利用Redis撤销JSON Web Token产生的令牌

以太坊智能合约项目-Token合约开发与部署

[认证授权] 2.OAuth2授权(续) & JWT(JSON Web Token)

撤销令牌 OAuth 2 google api

我可以使用可撤销令牌访问 Facebook Audience Network API 吗?