授权令牌过期时如何处理多个 API 请求?

How to handle multiple API requests when the auth token is expired?

我有一个用例,其中我几乎同时调用了 2 个不同的 API,但是在执行第一个 API 时,我的身份验证令牌已过期。现在我可以在获得新令牌时暂停 API 1 的执行,我希望第二个 API 的执行也暂停,并且在获得有效令牌后,它应该恢复。

你可以用 dio 做到这一点。您可以通过 lock() 锁定特定对象。如果调用 lock(),所有进一步的请求都将放入队列中,调用将在调用 unlock() 之后进行。

Dio _dio= Dio();

_dio.lock();

_dio.unlock();

通常这是通过同步令牌刷新来管理的,如我的这些代码片段所示:

技术是让多个 API 调用失败,然后刷新令牌一次,然后重试所有 API 调用。然后,此管道与应用程序的其余代码无缝连接。