跳转到主要内容

未提供项目描述

项目描述

为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_keyread_original_format下是必需的
  • original_format_data_serializer
  • original_format_remove_keys 可选的逗号分隔列表
    • 如果您的旧会话具有pickle支持但不再工作的值,请在此处列出会话键。它们将被删除,但会话的其余部分将被保留。
  • write_original_format 默认值为False
    • 如果您有多个服务器/进程并且需要逐步推出,请设置为true。然后当所有进程都准备好时,将其设置为False。

非功能特性

  • 没有加密cookie(尽管可以使用JWT实现)
  • JWT有效载荷/声明字段(如isssubexp等)未使用或验证。相反,它使用beaker CookieSession具有的字段,以实现最大向后兼容性和简单性。
  • 即使bson_compress_jwt_payload=False,也需要pymongo/bson

许可证

Apache许可证

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

beaker-session-jwt-1.0.1.tar.gz (4.9 kB 查看哈希)

上传时间

构建分布

beaker_session_jwt-1.0.1-py3-none-any.whl (5.0 kB 查看哈希)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面