ios 在访问令牌过期后处理API调用

ipakzgxi  于 5个月前  发布在  iOS
关注(0)|答案(1)|浏览(64)

我正在开发一个应用程序,我们将在其中引入token expiry。令牌将在每晚12.00 am过期。我对如何在应用程序中处理令牌过期有一些问题。
我所做的:
每当应用程序启动时,我都会在NSUserDefaults中查找令牌并检查它是否仍然有效。如果它无效,则调用令牌刷新API并存储新令牌。之后,每个API调用都使用新令牌调用。
我心中的疑问:
一个用户在11.59使用应用程序,他在应用程序的主页上,现在是12.01,用户进入应用程序的第二页,在那里我调用3个不同的API请求。第一个API请求给我的状态代码为401,所以我调用令牌刷新API。在其他2个请求之间也可能被调用,他们也调用了刷新令牌API。
我如何确保在获得401后立即使所有API调用无效,直到没有刷新令牌?

tjrkku2a

tjrkku2a1#

不太清楚为什么你会有一个艰难的时间令牌到期,通常令牌到期后滑动规模(说24小时后)没有硬停止。
在任何情况下,最简单的方法是有一个帮助函数来获取令牌它从NSUserial读取它,你在应用程序启动时和每次API调用之前调用它。第一次调用验证令牌还存储过期时间,这样下次你调用这个函数的时候,你就可以知道令牌是否应该过期,而不需要再次调用服务器进行验证。因为你知道他们会失败。这样你就有干净的日志在你的服务器上,你可以监视错误,不应该在那里。
第二部分变得不那么需要了,虽然很好(如果令牌在服务器上因其他原因而无效,而不是您的12:00am到期,或者由于时差,其他错误等),也可以用GetToken方法处理,如果您正在刷新令牌存储的过程中,则可以使用标记来识别此类,并且这样调用函数将等待或重试。

相关问题