如何避免多次刷新令牌?

时间:2016-09-20 10:59:11

标签: api oauth infusionsoft

在我的某个应用中,我与Infusionsoft集成,访问令牌在一定时间后过期。

现在前端会发出多个请求来获取不同的数据。令牌过期时,它会刷新令牌并获得新的访问权限并刷新令牌。但是在我获得新的访问权限和刷新令牌之前,来自UI的后续请求尝试使用旧的刷新令牌刷新令牌,并且它们都会导致错误。

解决此问题的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

(我的回答并不特定于Infusionsoft)。

这是我用来防止重复的并发请求更新/刷新承载令牌的方法,当Web服务客户端可能发出使用相同承载令牌的并发请求时(防止每个请求线程或异步上下文它自己的单独的刷新请求)。

诀窍是使用在{{}内交换的缓存Task<AuthResponseDto>(其中AuthResponseDto是DTO类型,其中包含最新成功获得的access_token)。 1}}(您不能在lockawait,但是可以在lock内复制Task引用,然后在{{ 1}})。

lock