刷新令牌如何在 OAuth 流程中工作?

How do refresh tokens work in an OAuth flow?

我正在使用 Reddit API,uses OAuth to authenticate users for the API

他们的 OAuth 的 APIs 提到本质上是您向用户展示一个网页,在他们批准后,他们将被重定向回您的应用程序,该应用程序会提供一个代码。然后,您可以获取此代码并向 API 发出请求,以获得您可以存储的访问令牌。

在 Reddit API 中,您可以专门设置一个持续时间,可以是临时的,也可以是永久的。对于永久性,您似乎需要恢复与上述访问令牌一起收到的 "refresh token",因为访问令牌每小时都会过期,而刷新令牌将允许您获得新的访问令牌。

我的理解正确吗?如果每小时过期,"permanent" 请求有什么意义?此外,我如何在应用程序意义上跟踪它?我是否在初始令牌后设置一个小时的计时器来请求新令牌?如果应用关闭了,我是否将最后一次请求时间写入磁盘,检查是否超过一个小时,否则刷新?

我是否正确理解了刷新令牌,它们必须以这种方式进行管理...手动?

Am I correct in understanding this?

What is the point of the "permanent" request if hourly it expires?

  • 用户已授权访问您的应用程序。用户可以随时撤销访问权限。

Furthermore, how do I track this in an application sense?

你可以做一个计时器,或者像 Wain 说的那样,只是 "refresh on failure"。

What if the app is closed, do I write the last request time to disk, check if it's been more than an hour, and refresh it otherwise?

是或使用 "refresh on failure" 方法。