crudauth 面向auth 的fastapi 扩展包

crudauth 面向auth 的fastapi 扩展包,可以用来快速开发支持auth 的能力

包含的特性

  • 传输无关 (Transport-agnostic):将Cookie会话和JWT Bearer令牌统一在同一个 Principal 下,“先到者优先”(first credential present wins),授权码从不依赖于具体的认证传输方式。

  • 您的模型,您的模式 (Your model, your schema):通过逻辑字段映射(column_map)直接适配您现有的 SQLAlchemy User 模型,无需强制重命名或创建第二张用户表。

  • 默认安全 (Secure by default):提供同步器令牌CSRF防护、基于IP/用户的 escalating 登录锁定、带SHA-256预哈希的bcrypt(无72字节截断问题)、时序相等的登录验证以及可信代理IP解析。

  • OAuth 支持:内置 Google、GitHub 或自定义OAuth提供者,并将 state 参数绑定到发起请求的浏览器以防止登录CSRF。

  • 邮件流程 (Email flows):支持邮箱验证、密码重置和邮箱变更。您只需实现 EmailSender 接口来渲染邮件内容,库会负责生成和验证签名的一次性令牌。

  • Sudo 模式 (Sudo mode):提供短期有效的重新认证机制,用于保护敏感操作,该状态会标记在会话中并在登出时清除。

  • 多设备会话 (Multi-device sessions):支持列出、撤销单个设备或“全平台登出”,并配有可配置的每用户会话数量上限。

  • 应用策略钩子 (App policy in hooks):通过 AuthHooks 实现应用策略(如欢迎邮件、试用授权、审计日志),这些钩子会在所有认证路径上统一触发。

  • 可插拔后端 (Pluggable backends):为会话、CSRF、锁定计数器和一次性令牌提供内存(开发用)和Redis(生产用)等多种后端。

  • 完全类型化 & 异步 (Fully typed & async):提供 py.typed,基于 SQLAlchemy 2.0 和 Pydantic v2 构建。

  • ai 友好,提供了skills

说明

此团队还提供了fastcrud 配合起来是不错的选择,可以尝试下

参考资料

https://github.com/benavlabs/crudauth

https://benavlabs.github.io/crudauth/

https://github.com/benavlabs/fastcrud

https://benavlabs.github.io/crudauth/architecture/

posted on 2026-08-30 08:00  荣锋亮  阅读(5)  评论(0)    收藏  举报

导航