我们的API返回会话失效(30分钟不活动)的用户授权码。因此,如果我们使用身份验证令牌进行api呼叫,它会将会话从通话时间更新为30分钟。如何处理app中的API令牌失效
经过30分钟的非活动状态后,api返回一个错误,表明令牌已过期。此时我们应该请求一个新的身份验证令牌。
但是,这样做的显而易见的方式(向用户显示登录屏幕并让他们再次登录)将意味着在应用程序中的某些功能中断用户。例如,我们有各种视图控制器,其中包含选项和输入,它们在流程结束时聚合并提交一个完整的API调用。如果会话在服务器上到期,而用户正在填写这些输入和视图,则在进行API调用时它们将被注销,并且它们将在这些视图中失去进展。
这有两个可能的变通:
我们在我们自己的应用程序,以确保后的应用30分钟不活动的用户注销设置定时器。这意味着它们在一组输入过程中不会被注销,但是这带来了以下问题:即使我们正在运行自己的计时器,服务器API仍可能会过期。因此这不起作用。
我们每隔10秒左右轮询服务器以询问API授权令牌是否仍然有效。这会消耗电池,数据和各种各样,只是不是一个合理的方式来做这样的事情。
有没有人有任何想法?
感谢 汤姆
从API发送“您已注销”消息有什么意义?为什么不在密钥过期后尝试拨打新电话时将用户登录?非常像cookies在浏览器 – ale0xB
中的工作原理是这样的...问题是因为他们可能在注销之前完成加载。即使他们正在使用该应用,身份验证令牌也可能会过期。 –