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/
浙公网安备 33010602011771号