gpt4 book ai didi

ios - 访问 token 过期后处理 API 调用

转载 作者:行者123 更新时间:2023-11-30 12:01:52 27 4
gpt4 key购买 nike

我正在开发一个应用程序,我们将在其中引入 token 过期。该 token 将于每晚上午 12 点到期。对于我们如何处理应用程序中的 token 过期问题,我心中几乎没有什么疑问。

What I have done:-

Whenever the app is launched, I look for the token in NSUserDefaults and check if it is still valid or not. If it is not valid then I call token refresh API and store the new token. After that, every API calls is called with the new token.

Question in my mind:-

One user is using the app at 11.59, he is on app's homepage, now its 12.01 and user moves into the 2nd page of the app, where I am calling 3 different API requests. First API request gives me the status code as 401, so I call token refresh API. In between other 2 requests might also get called and they too have called refresh token API.

How can I make sure as soon as I get 401, invalidate all API calls till I don't have token refreshed?

最佳答案

不太清楚为什么您会遇到 token 过期的困难,通常 token 会在滑动范围后(例如 24 小时后)过期,而不是硬停止。

无论如何,最简单的方法是使用一个辅助函数来获取从 NSUserDefaults 读取的 token ,您可以在应用程序启动时以及每次 API 调用之前调用它。第一次调用验证 token 还存储过期时间,以便下次调用此函数时,您知道 token 是否应该过期,而无需再次调用服务器进行验证。这比向服务器发出大量失败的请求要好得多,因为您知道它们会失败。这样您的服务器上就有干净的日志,并且您可以监视不应该出现的错误。

第二部分变得不太需要,尽管很好(如果 token 由于上午 12:00 到期之外的其他原因在服务器上无效,或者由于时差、其他错误等),也可以使用 GetToken 进行处理方法,如果您正在刷新 token 存储一个标志来识别这种情况,那么调用函数将等待或重试。

关于ios - 访问 token 过期后处理 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47120801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com