27 lines
884 B
Python
27 lines
884 B
Python
from fastapi import Depends
|
|
from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer
|
|
|
|
from app.core.security import decode_access_token
|
|
|
|
bearer = HTTPBearer(auto_error=False)
|
|
|
|
|
|
async def require_staff(
|
|
credentials: HTTPAuthorizationCredentials | None = Depends(bearer),
|
|
) -> dict:
|
|
if credentials is None:
|
|
from fastapi import HTTPException, status
|
|
|
|
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="请先登录")
|
|
return decode_access_token(credentials.credentials, "staff")
|
|
|
|
|
|
async def require_member(
|
|
credentials: HTTPAuthorizationCredentials | None = Depends(bearer),
|
|
) -> dict:
|
|
if credentials is None:
|
|
from fastapi import HTTPException, status
|
|
|
|
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="请先登录")
|
|
return decode_access_token(credentials.credentials, "member")
|