首页 > 解决方案 > Flask-Session逻辑和JWT类似吗

问题描述

我有一个关于烧瓶会话逻辑的问题。首先,据我所知有两种存储会话数据的方法,一种是在客户端,另一种是在服务器端。据我所知,Flask 使用的是前者(客户端),其中会话被加密并存储在客户端的浏览器中。

假设我们要在烧瓶后端登录

  1. 用户登录,flask 生成会话并通过 set-cookie 客户端存储会话
  2. 用户向后端发出另一个请求,并将其 cookie 发送到存储会话的位置,flask 使用用于加密会话的密钥验证会话
  3. 当会话有效时,flask 会加载会话,这意味着用户已登录

据我所知,智威汤逊的工作方式如下。它生成一个令牌,客户端存储令牌并在每个请求中将其发送到服务器,在服务器上验证令牌。

据我所知,flask 和 JWT 都使用秘密来加密数据。

那么我们可以说,flask-session 和 JWT 在某种程度上相似吗?

标签: pythonauthenticationsessionflaskjwt

解决方案


jwt 和烧瓶会话都在客户端上工作,但关键区别在于烧瓶会话将签名的会话数据存储在客户端 cookie 中,但在 jwt 中,您可以独立地将令牌存储在您想要的任何地方,例如 localstorage、cookie 等。

jwt 默认为base64 编码,而在烧瓶会话中,为安全起见,必须手动完成。但是是的,传统会话(例如 php)和烧瓶会话之间的区别在于会话数据存储在客户端中,而不是作为服务器上的文件(而客户端 cookie 在传统会话中具有会话 ID)。


推荐阅读