【发布时间】:2021-12-15 21:43:24
【问题描述】:
我正在使用使用 Oauth2 的 Dailymotion API,他们的客户端令牌在 36000 秒(10 小时)后过期,所以我想使用提供的刷新令牌 URL 为每次调用创建新令牌。另外,我在文档中没有发现任何警告阻止我这样做,这是一种不好的做法吗?
【问题讨论】:
我正在使用使用 Oauth2 的 Dailymotion API,他们的客户端令牌在 36000 秒(10 小时)后过期,所以我想使用提供的刷新令牌 URL 为每次调用创建新令牌。另外,我在文档中没有发现任何警告阻止我这样做,这是一种不好的做法吗?
【问题讨论】:
为每个请求创建一个新令牌并不是最好的方法。
在您的请求期间,您可以检查(例如:使用“尝试”)您的访问令牌是否已过期,然后仅在必要时使用您给定的刷新令牌请求新的。
如果您使用 PHP、Python、Javascript 等语言......您可以使用已经实现这些机制的可用 SDK 节省大量时间。
【讨论】:
是的,这是一种不好的做法,尽管它是可行的。授权服务器可能会对您的客户端施加速率限制,因此在某些时候您将无法刷新令牌。
出于安全原因,访问令牌必须具有过期时间。如果有人设法获得该令牌,他们将只能在指定时间内使用它。好的做法是尽可能缩短到期时间 - 例如5 或 15 分钟。 Dailymotion 使用的 10 小时在我看来有点多,但这是他们的决定。
刷新令牌应由您的客户端安全保存,并且您通常需要客户端密码才能发出刷新请求。这意味着攻击者通常更难获得刷新令牌(或者一旦他们设法窃取它就使用它)。
【讨论】: