JWT 在移动应用中会过期吗?

Abd*_*man 5 security jwt

我已经实现了很多Restful API和 Web 应用程序,我用来生成JWT并给出一些过期时间。

目前我正在开发移动应用程序,它们都在相同的Restful API上工作,但我有点困惑移动应用程序中的令牌是否应该过期并注销用户?

在很多地方、网站上,据我所知,智威汤逊永远不应该永远存在,而且过期时间必须是很短的一段时间,也许一天或更短。

但如果手机注销用户,是否会被认为是糟糕的用户体验

另一方面,用户可能会单击“记住我”复选框,那么JWT会如何过期呢?

任何想法将不胜感激。

Pau*_*mer 7

有几种不同的方法来处理 JWT 过期。首先是确定您的代币的价值。如果您使用令牌作为游戏服务器的登录信息,您可能不会像银行应用程序那样担心一周的过期时间。

处理令牌过期的方法有很多,但我在下面找到了最常见的方法。

基于时间的自动过期。这是最佳实践,因为被劫持的 JWT 的价值会降低。正如您所提到的,意外地注销用户可能会是一种糟糕的体验,因此一种选择是包含“刷新”令牌,当短期令牌过期时,可以将其交换为新的、新鲜的、有效的 JWT 令牌。刷新令牌具有更长的生命周期,并且可能绑定到其他详细信息,例如设备上的安全元件,或仅限会话中的策略(例如,必须在应用程序重新启动时获取新的刷新令牌)。

基于策略的撤销 - 您可以发出 JWT 撤销,而不是依赖内置超时。这取决于您的服务决定何时撤销登录,并将撤销发布到可以检查的地方。这基本上就是不透明令牌的作用,因此您刚刚放弃了 JWT 的优点之一,但您可以根据服务观察到的活动使会话超时。

一般来说,这些令牌管理策略独立于“记住我”功能运行,“记住我”功能通常是一种特殊的“长期”(例如永远、30天、90天等)令牌,受安全元件(例如指纹识别、设备上的密码等),用于在用户启动新的应用程序会话时获取会话令牌。