#jwt #session-middleware #invalidation #actix-middleware #actix #token

actix-jwt-authc

支持无效化的JWT身份认证的Actix中间件

3个不稳定版本

0.2.0 2022年7月6日
0.1.1 2022年7月4日
0.1.0 2022年7月4日

#360 in 身份认证

MIT 协议

56KB
933

actix-jwt-authc

Crates.io docs.rs Continuous integration Coverage Status

支持检查无效化的JWT而不需要为每个请求进行IO调用的Actix中间件。它从Stream中获取无效化的JWT并将它们存储在内存中。

此中间件基于假设,由于JWT(应该)有有效期,最终,一个周期性重新加载的内存中显式无效但未过期的JWT集合不应该太大,以至于造成问题。只有通过测试才能真正回答这个假设是否适用于特定的用例。

关于main的文档

用法

功能

  • tracing 通过引入 tracing 来启用仪表化
  • log 通过 tracing 使用兼容层启用日志记录
  • session 启用 actix-session 集成,允许您从可配置的会话密钥中提取JWT。

示例

此仓库中包含的示例有

  • 一组简单的路由,用于启动和检查当前会话
  • 无效化的JWT接口的内存实现
    • 从存储中清除过期的JWT的内存循环
    • 基于通道的无效化JWT事件流,用于为中间件使用的无效化JWT集合提供动力
  • ring 生成用于 EdDSA签名JWT 的Ed25519密钥对

会话和JWT密钥都会实时生成,因此JWT在重启之间是不兼容的。

它支持 tracingsession 作为功能。要在8080上运行服务器

cargo run --example inmemory --features tracing,session

支持的端点

  • /login 用于启动会话
  • /logout 用于销毁当前会话(需要会话)
  • /session 用于检查当前会话(需要会话)
  • /maybe_sesion 用于检查是否存在当前会话

如果未传递 session,示例中的身份验证依赖于作为 Authorization 标头发送的 Bearer 令牌。

免责声明

本软件按“原样”提供,且作者放弃与此软件有关的所有保证,包括所有默示的适销性和适用性保证。在任何情况下,作者不对任何特殊、直接、间接或后果性损害或任何因使用或性能此软件而导致的任何损害(无论基于合同、疏忽或其他侵权行为)承担责任。

依赖项

~20–35MB
~683K SLoC