如果我每次都可以刷新令牌,那么设置客户端令牌过期的目的是什么?

What's the purpose of setting expiry of client token if I can just refresh tokens everytime?

我正在使用使用 Oauth2 的 Dailymotion API,他们的客户端令牌将在 36000 秒(10 小时)后过期,所以我想为每个使用刷新令牌的调用创建新令牌 URL 假如。另外,我在文档中没有发现任何阻止我这样做的警告,这是一种不好的做法吗?

是的,这是一种不好的做法,尽管它是可行的。授权服务器可能会对您的客户端施加速率限制,因此在某些时候您将无法刷新令牌。

出于安全原因,访问令牌必须有到期时间。如果任何人设法获得该令牌,他们将只能在指定时间内使用它。好的做法是尽可能缩短到期时间 - 例如5 或 15 分钟。 Dailymotion使用的10个小时,我觉得有点多,但这是他们的决定。

刷新令牌应由您的客户端安全保存,您通常需要客户端密码才能发出刷新请求。这意味着攻击者通常更难获得刷新令牌(或者一旦他们设法窃取它就使用它)。

为每个请求创建一个新令牌并不是最好的处理方式。

在您请求期间,您可以检查(例如:使用“尝试”)您的访问令牌是否已过期,然后仅在必要时使用给定的刷新令牌请求新的访问令牌。

如果您使用的是 PHP、Python、Javascript 等语言,...您可以使用已经实现这些机制的可用 SDK 节省大量时间。

比照。 https://developer.dailymotion.com/tools/sdks/