用户认证¶
FastAPI-Amis-Admin
以应用插件的方式为系统提供简单而强大的用户RBAC
认证与授权.
项目地址: FastAPI-User-Auth,更多教程文档及使用示例正在持续补充,
欢迎加入Q群229036692一起学习讨论.
安装¶
pip install fastapi-user-auth
简单示例¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
关于AuthAdminSite
- AuthAdminSite是FastAPI-User-Auth封装的一个默认授权管理站点类,它要求用户必须登录.
- 通过AuthAdminSite注册的管理对象,默认权限与其一致(即:也要求用户必须登录).
- 你可以通过重载
has_page_permission
方法,实现默认权限要求的升级或降级.
示例-1¶
需求: 现有一个用户管理应用,在要求用户登录的基础上,还需要当前登录的用户是管理员,其他非管理员用户禁止操作.
class UserAuthApp(AdminApp):
async def has_page_permission(self, request: Request) -> bool:
return await request.auth.requires(roles='admin', response=False)(request)
示例-2¶
需求: 在上例用户管理应用下,包含用户登录/注册表单管理对象,这部分路由并不需要用户处于登录状态.
class UserLoginFormAdmin(FormAdmin):
async def has_page_permission(self, request: Request) -> bool:
return True
示例-3¶
需求: 有一个ModelAdmin
文章模型管理,权限要求如下:
- 所有文章全部公开,不需要用户登录也可以查看.
- 用户未登录,不可按标题过滤文章,并且最多每页最多只能查看10条数据.
- 用户已登录,并且注册时间大于3天,才可以发布文章.
- 用户已登录,并且只能修改自己的文章,并且不可批量修改.
- 管理员可以修改全部文章,并且可以批量修改.
- 必须管理员才可以删除文章.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
|
界面预览¶
- Open
http://127.0.0.1:8000/admin/auth/form/login
in your browser:
- Open
http://127.0.0.1:8000/admin/
in your browser:
- Open
http://127.0.0.1:8000/admin/docs
in your browser: