【发布时间】:2020-07-07 15:04:28
【问题描述】:
上下文
在烧瓶应用中,我们使用签名的 cookie(编码的 JWT)存储用户数据,但是数据量太大而无法放入 cookie(每个项目的特定权限)。
Redis 来了,我们不再把权限存储在 JWT 中来回传递,而是将其保存在 redis 中。
我的问题是
- 签署会话 cookie(编码 JWT)并使用 redis 存储其他会话信息有什么好处
- 最好自己实现会话逻辑而不是使用flask-session 之类的东西
【问题讨论】:
上下文
在烧瓶应用中,我们使用签名的 cookie(编码的 JWT)存储用户数据,但是数据量太大而无法放入 cookie(每个项目的特定权限)。
Redis 来了,我们不再把权限存储在 JWT 中来回传递,而是将其保存在 redis 中。
我的问题是
【问题讨论】:
即使您使用Redis 来存储会话,您仍然需要 cookie,因为您需要通过密钥进行查询,并且密钥将是 cookie 中的客户端之一。
您可以只将标识符保留在 cookie 中,但将其余部分存储在 redis 中,然后通过该标识符获取详细信息。
session 的要求几乎相同(获取、设置、过期、删除),并且可能该库支持会话相关用例的所有要求。我会选择现有的而不是实施新的。【讨论】:
application signatures 来防止修改?介意分享你的解决方案吗?谢谢
JWT 最适用于令牌由不同应用程序生成和使用的分布式应用程序。因此,如果所有处理都发生在单个后端,redis 会更加灵活。 实现自己的会话逻辑可能不是一个好主意,尤其是当会话用于安全目的(身份验证)时。
【讨论】: