【问题标题】:Store JWT/authorization on the Client/Server side of application [JavaScript]在应用程序的客户端/服务器端存储 JWT/授权 [JavaScript]
【发布时间】:2021-02-22 09:07:55
【问题描述】:

现在我正在使用 JWT 令牌来验证用户,并在客户端将其存储在 cookie 中。在服务器端,我只是生成这个令牌并将其发送到客户端。

正如我所见,有几种方法可以将服务器端令牌/授权存储在 redis 中。我不明白我为什么要使用它。你能为我提供一些用例吗?也许我应该将客户端令牌存储在其他地方?

【问题讨论】:

    标签: node.js redis frontend backend


    【解决方案1】:

    使用 Redis 在服务器上存储 JWT 可以让您更好地控制身份验证/授权在您的应用上的工作方式。

    考虑注销过程,理想情况下,它应该使令牌无效,但 JWT 并没有真正为您提供撤销令牌的简单方法。

    最好的办法是将其存储在某个地方(Redis),当收到注销请求时,保存的令牌会被删除。

    Redis 比较快,因为它的缓存功能,基本上可以让你在内存中保存/检索令牌,它还提供了一些很酷的功能,其中之一是过期/自删除保存的令牌一段时间后。

    【讨论】:

    • 由于大多数用户不会主动“注销”,我建议将“已撤销”令牌列表存储在 Redis 中,而不是“活动”列表中,这样只有被主动撤销的令牌才会被保存剩下的就会过期
    • @Fortune Ekeruo 谢谢你的解释。我还有一个问题。它应该如何工作?我的意思是我应该在redis中存储什么?什么样的用户数据?
    • 有几种方法可以做到这一点。基本上,您只想保存生成并发送回客户端的相同令牌。每次客户端发出请求时。在处理请求之前检查令牌是否存在于缓存中。 @GuyKorland 提出了另一种方法。
    • @GuyKorland 和 Fortune Ekeruo 感谢您的建议
    猜你喜欢
    • 2011-10-17
    • 2013-08-23
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多