未提供项目描述
项目描述
为Beaker Sessions提供的新签名cookie实现Beaker Sessions
特性
- 比默认的Pickle序列化更安全
- 使用BSON序列化和压缩,因此支持的datatypes比JSON更多(可选)
- 支持多个密钥,因此您可以轮换它们
- 更强的哈希算法(SHA256)
- 与基于pickle的原生Beaker会话cookie向后兼容的读写
- 使用JWT进行签名(尽管JWT的其它功能并未实现太多)
安装
pip install 'beaker-session-jwt'
用法
请参阅Beaker文档以获取通用实现。使用此类指定
from beaker_session_jwt import JWTCookieSession
app = SessionMiddleware(app, config, session_class=JWTCookieSession)
额外的配置选项
请参阅Beaker文档以获取主要配置选项,其中许多也适用于此类。
jwt_secret_keys
必需。一个或多个用逗号分隔的密钥- 使用以下命令生成密钥:`python -c 'import secrets; print(secrets.token_hex());'`
- 支持多个签名密钥,因此您可以轮换它们。列表中的第一个密钥将用于写入,其余密钥将允许验证。
bson_compress_jwt_payload
默认为True- 使用BSON序列化并使用zlib压缩,以便存储JSON无法存储的类型,如datetime、bytes等。这些数据全部存储在一个JWT字段中,因此JWT几乎只用于签名
read_original_format
默认值为False- 设置为true以读取原始的beaker签名cookie。允许向后兼容和过渡期
- 过渡期后,请确保将其设置回False
original_format_validate_key
在read_original_format
下是必需的original_format_data_serializer
original_format_remove_keys
可选的逗号分隔列表- 如果您的旧会话具有pickle支持但不再工作的值,请在此处列出会话键。它们将被删除,但会话的其余部分将被保留。
write_original_format
默认值为False- 如果您有多个服务器/进程并且需要逐步推出,请设置为true。然后当所有进程都准备好时,将其设置为False。
非功能特性
- 没有加密cookie(尽管可以使用JWT实现)
- JWT有效载荷/声明字段(如
iss
、sub
、exp
等)未使用或验证。相反,它使用beaker CookieSession具有的字段,以实现最大向后兼容性和简单性。 - 即使
bson_compress_jwt_payload=False
,也需要pymongo/bson
许可证
Apache许可证
项目详情
关闭
beaker-session-jwt-1.0.1.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f3fec74555d97ba3830e0d063236780c408bfa99aa27dab3c4dfc174de0854f7 |
|
MD5 | 705ae90fb6962ebba6af3a9e960a84c8 |
|
BLAKE2b-256 | 3b2fdde840ac5fdea9d3dd022344714e16f7796ad2de6f1224ba18d3993416c2 |
关闭
beaker_session_jwt-1.0.1-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6cf24e7f6e52afc26966aed03562b9c868c999095fc293530683a19491ad7127 |
|
MD5 | 9c36987468b2c6dea3df93c5367d8680 |
|
BLAKE2b-256 | 088e541ddf17d26ca8b819901e95c8e9ad11ba094f44feb0706b49f2b257ed2f |