mirror of
https://github.com/fastapi-admin/fastapi-admin.git
synced 2026-03-13 10:32:25 +08:00
add custom login_view
This commit is contained in:
@@ -2,8 +2,7 @@ from fastapi import Depends
|
||||
|
||||
from ..depends import jwt_required
|
||||
from ..factory import app
|
||||
from . import login, rest, site
|
||||
from . import rest, site
|
||||
|
||||
app.include_router(login.router)
|
||||
app.include_router(site.router)
|
||||
app.include_router(rest.router, dependencies=[Depends(jwt_required)], prefix="/rest")
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
import jwt
|
||||
from fastapi import APIRouter, HTTPException
|
||||
from starlette.status import HTTP_403_FORBIDDEN
|
||||
|
||||
from ..common import pwd_context
|
||||
from ..factory import app
|
||||
from ..schemas import LoginIn
|
||||
from ..shortcuts import get_object_or_404
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.post("/login",)
|
||||
async def login(login_in: LoginIn):
|
||||
user_model = app.user_model
|
||||
user = await get_object_or_404(user_model, username=login_in.username)
|
||||
if not user.is_active:
|
||||
raise HTTPException(status_code=HTTP_403_FORBIDDEN, detail="User is not Active!")
|
||||
if not pwd_context.verify(login_in.password, user.password):
|
||||
raise HTTPException(status_code=HTTP_403_FORBIDDEN, detail="Incorrect Password!")
|
||||
ret = {
|
||||
"user": {
|
||||
"username": user.username,
|
||||
"is_superuser": user.is_superuser,
|
||||
"avatar": user.avatar if hasattr(user, "avatar") else None,
|
||||
},
|
||||
"token": jwt.encode({"user_id": user.pk}, app.admin_secret, algorithm="HS256"),
|
||||
}
|
||||
return ret
|
||||
Reference in New Issue
Block a user