在我的某个应用中,我与Infusionsoft集成,访问令牌在一定时间后过期。
现在前端会发出多个请求来获取不同的数据。令牌过期时,它会刷新令牌并获得新的访问权限并刷新令牌。但是在我获得新的访问权限和刷新令牌之前,来自UI的后续请求尝试使用旧的刷新令牌刷新令牌,并且它们都会导致错误。
解决此问题的最佳方法是什么?
答案 0 :(得分:0)
有一个教程讨论按计划刷新令牌。
答案 1 :(得分:0)
(我的回答并不特定于Infusionsoft)。
这是我用来防止重复的并发请求更新/刷新承载令牌的方法,当Web服务客户端可能发出使用相同承载令牌的并发请求时(防止每个请求线程或异步上下文它自己的单独的刷新请求)。
诀窍是使用在{{}内交换的缓存Task<AuthResponseDto>
(其中AuthResponseDto
是DTO类型,其中包含最新成功获得的access_token
)。 1}}(您不能在lock
内await
,但是可以在lock
内复制Task
引用,然后在{{ 1}})。
lock