在会话中同时使用会话cookie和redis存储是否有任何原因或优势



上下文

在flask应用程序中,我们对用户数据使用签名cookie(编码JWT(,但数据量太大,无法放入cookie(每个项目的特定权限(。

redis来了,我们不将权限存储在JWT中并来回传递,而是将其保留在redis中。

我的问题是

  1. 拥有已签名的会话cookie(编码JWT(并使用redis存储其他会话信息有什么好处吗
  2. 是不是最好自己实现会话逻辑,而不是使用类似flask会话的东西

即使您使用Redis来存储会话,您仍然需要cookie,因为您需要按密钥进行查询,并且密钥将在cookie中的客户端。

您可以将标识符保存在cookie中,但将其余的存储在redis中,然后通过该标识符获取详细信息。

  1. 我认为将一些长的、难以知道的标识符作为密钥是安全的,而不仅仅是一些整数或一些任意的短文本
  2. 我对flask不是很熟悉,但多年来对session的要求几乎相同(获取、设置、过期、删除(,而且该库可能支持会话相关用例的所有要求。我会采用现有的,而不是实施新的

JWT主要适用于由不同应用程序生成和使用令牌的分布式应用程序。因此,如果所有处理都发生在一个后端,那么redis会更加灵活。实现自己的会话逻辑可能不是一个好主意,尤其是当会话用于安全目的(身份验证(时。

相关内容

最新更新