如何获得一个无限期使用的访问令牌/刷新令牌(oauth2 - Spotify API)

Posted

技术标签:

【中文标题】如何获得一个无限期使用的访问令牌/刷新令牌(oauth2 - Spotify API)【英文标题】:How to get one access token/refresh token for indefinite use (oauth2 - Spotify API) 【发布时间】:2018-07-29 01:43:56 【问题描述】:

我正在开发一个只使用一个 Spotify 帐户的应用程序,但我不太了解刷新令牌(使用 oauth2)。理想情况下,我只想使用 Spotify API 控制台来接收访问令牌并刷新令牌,我可以永远使用它们,而不必在应用程序运行时再次担心授权。如果我有一个刷新令牌,我是否可以永远使用该刷新令牌,还是需要在我想访问 API 时不断使用该刷新令牌获取一个新令牌?

【问题讨论】:

【参考方案1】:

TLDR:您不需要每次调用都刷新访问密钥,但如果访问密钥过期,您必须刷新访问密钥。

刷新令牌是 OAuth2 流程的一部分。访问密钥的寿命很短并且会过期,而刷新令牌的寿命很长。当您的访问令牌过期时,您可以将刷新令牌与您的客户端密码一起使用以获取新的访问令牌。这是一种安全措施。如果您的访问令牌被泄露,那么如果没有刷新令牌和客户端密码,它只会是短暂的。如果您的刷新令牌泄露,您可以将其列入黑名单。

如果您不访问私人数据,则有一些例外情况。 Spotify authorization guide 有一个 Client Credentials 流,它不需要刷新,但它可以访问的数据类型也受到限制。

【讨论】:

感谢您的快速回复!另外,当我获得刷新令牌时,我可以永远使用该刷新令牌吗?或者,当我从原始刷新令牌请求新的访问令牌时,是否需要检索新的刷新令牌? 您可以重复使用刷新令牌。

以上是关于如何获得一个无限期使用的访问令牌/刷新令牌(oauth2 - Spotify API)的主要内容,如果未能解决你的问题,请参考以下文章

Azure:如何获得刷新令牌?当连接的输出仅提供访问令牌时使用 Curl

如何保护刷新令牌?

Spring security oauth 令牌提取

Azure API 管理 - 如何刷新访问令牌后端 API?

如何使 Identity Core 生成的访问令牌无效?

为啥使用 JWT 刷新令牌