我正在开发一个通过.net api连接到服务器的应用程序。
用户登录后会生成一个访问令牌,用于进行网络呼叫。
要求:生成访问令牌20分钟后令牌过期,用户必须再次登录才能继续使用应用程序。
我如何实现这一功能,即20分钟后用户将从应用程序注销并重定向到主页。
如果用户在登录20分钟后仍在使用应用程序?如何在应用程序中保存访问令牌,并在用户注销后将其删除。
我在目标c中看到了几个答案,但我希望答案迅速。
将您的访问令牌保存到密钥链中,并对其进行时间戳。
编写一个函数,从密钥链中获取API令牌。每次该函数访问访问令牌时,它都应该检查其时间戳是否早于20分钟,它应该返回nil,然后您应该将用户带到主屏幕。
欢迎使用堆栈溢出
简短回答
在应用程序中创建一个计时器委派来跟踪令牌到期。并在需要时重置计时器。
长应答TLDR
要实现您所解释的功能,我们需要
-
仅在应用程序委派中跟踪访问令牌到期情况。
-
当用户从AppDelegate登录时,启动计时器20分钟。
- 在进行任何API调用访问来自应用程序代理的令牌之前(在内部,您可以保存在任何安全方法中,例如KeyChain(
- 从应用程序访问令牌时,委派检查计时器是否已过期。如果是,请在窗口中显示您的登录屏幕
- 如果不存在,则进行API调用并让用户执行任务
此方法的优势
如果您确定访问令牌将在20分钟后过期,那么在不进行任何API调用的情况下,我们可以将用户从应用程序注销。