This commit is contained in:
Jakub Miazek
2023-10-24 20:28:30 +02:00
parent 587690cb3e
commit 4e2d3026c8
3 changed files with 13 additions and 18 deletions

View File

@@ -10,10 +10,7 @@ from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
async def verify_jwt(request: Request, token: str) -> bool:
_payload = await request.app.state.redis.get(token)
if _payload:
return True
else:
return False
return bool(_payload)
class AuthBearer(HTTPBearer):
@@ -22,14 +19,13 @@ class AuthBearer(HTTPBearer):
async def __call__(self, request: Request):
credentials: HTTPAuthorizationCredentials = await super().__call__(request)
if credentials:
if not credentials.scheme == "Bearer":
raise HTTPException(status_code=403, detail="Invalid authentication scheme.")
if not await verify_jwt(request, credentials.credentials):
raise HTTPException(status_code=403, detail="Invalid token or expired token.")
return credentials.credentials
else:
if not credentials:
raise HTTPException(status_code=403, detail="Invalid authorization code.")
if credentials.scheme != "Bearer":
raise HTTPException(status_code=403, detail="Invalid authentication scheme.")
if not await verify_jwt(request, credentials.credentials):
raise HTTPException(status_code=403, detail="Invalid token or expired token.")
return credentials.credentials
async def create_access_token(user: User, request: Request):