当用户成功使用用户名和密码对登录后,我可以在数据库中存储一个临时令牌,也许是一些随机数。
然后通过SSL协议将此私钥发送给用户。
稍后,他将在每个请求中附加此秘密令牌。
然后我将使用标准令牌和标准ID来针对数据库验证令牌-使用用户的令牌和ID(没有有效ID的请求将不会受到尊重)。
该ID用于查找实际用户并将给定令牌与数据库中的令牌匹配。 ID是索引,因此查找将是n1复杂度。
在数据库中,我可以存储令牌的到期日期,并通过再次发送密码来处理用户是否必须续订令牌。
还有JWT的。我自己使用它们,但是不确定是否正确使用。
JWT接收有效负载并将其保存(在哪里?)并返回令牌。
此令牌是私有和秘密的,并发送给用户。
稍后,对于每个请求,他都必须携带此令牌,该令牌已使用JWT进行了验证。成功验证后,JWT会返回在创建JWT时初始化的有效负载。
问题-如何延长JWT的到期日期? 如果JWT令牌仅在15分钟的活动用户中使用,并且他对数据库执行的每个操作都应刷新并重新激活令牌15分钟以上,那么该怎么做?
关于性能-使用ID进行搜索并使用 index 在数据库中进行迭代是n1的复杂性。对于使用散列的JWT签名和验证函数,您能否说同样的话?要执行此操作需要多少力量?这是占用大量CPU的行为吗?还是只是很小的任务?