-2

我正在开发一个通过 .net api 连接到服务器的应用程序。

什么用户登录它会生成一个访问令牌,用于进行网络调用。

要求:在生成访问令牌 20 分钟后,令牌过期,用户必须重新登录才能继续使用该应用程序。

如何实现此功能,即 20 分钟后用户将从应用程序注销并重定向到主页。

如果用户在登录后 20 分钟后仍在使用应用程序?如何在应用程序中保存访问令牌并在用户注销后将其删除。

我在 Objective c 中看到了几个答案,但我希望能迅速得到答案。

4

2 回答 2

0

将您的访问令牌保存到钥匙串,并为其添加时间戳。

编写一个从钥匙串中获取 API 令牌的函数。每次这个函数访问访问令牌时,它应该检查它的时间戳是否早于 20 分钟它应该返回 nil,然后你应该把用户带到主屏幕。

于 2020-02-20T05:49:40.657 回答
0

欢迎来到堆栈溢出

简答

在应用程序委托中创建一个计时器以跟踪令牌到期。并在需要时重置计时器。

长答案 TLDR;

要实现您所解释的功能,我们需要

  • 仅在应用委托中跟踪访问令牌到期。

  • 当用户从 AppDelegate 登录时,启动一个 20 分钟的计时器。

  • 在进行任何 API 调用之前,从应用程序委托访问令牌(在内部,您可以保存在任何安全方法中,例如 KeyChain),
  • 从 app Delegate 访问令牌时,检查计时器是否已过期。如果是这样,请在窗口中显示您的登录屏幕。
  • 如果不存在,则进行 API 调用并让用户执行任务。

这种方法的优点

如果您确定访问令牌将在 20 分钟内过期,那么我们可以在不进行任何 API 调用的情况下从应用程序中注销用户。

于 2020-02-20T11:55:12.433 回答