Authentication
AuthenticationBackend
from sqladmin import Admin
from sqladmin.authentication import AuthenticationBackend
from starlette.requests import Request
from starlette.responses import RedirectResponse
class AdminAuth(AuthenticationBackend):
async def login(self, request: Request) -> bool:
form = await request.form()
username, password = form["username"], form["password"]
# 验证用户名/密码凭据
# 并更新会话
request.session.update({"token": "..."})
return True
async def logout(self, request: Request) -> bool:
# 通常你只需要清除会话
request.session.clear()
return True
async def authenticate(self, request: Request) -> bool:
token = request.session.get("token")
if not token:
return False
# 深入检查 token
return True
authentication_backend = AdminAuth(secret_key="...")
admin = Admin(app=..., authentication_backend=authentication_backend, ...)完整示例
权限
最后更新于