aboutsummaryrefslogtreecommitdiffstats
path: root/backend/authentication/backend.py
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-12-15 08:41:49 +0200
committerGravatar GitHub <[email protected]>2020-12-15 08:41:49 +0200
commit13b031581763f080c2415ac2bd76e2ad40aeb8dc (patch)
tree1cbfdd2219c56c4cf8f5a590ad2e72cf3b63bc75 /backend/authentication/backend.py
parentUpdate route levels parsing to work in all platforms (diff)
parentFix f-string referencing the wrong name (diff)
Merge pull request #29 from python-discord/testing-strategies
Refactor `create_route_map`
Diffstat (limited to 'backend/authentication/backend.py')
-rw-r--r--backend/authentication/backend.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/backend/authentication/backend.py b/backend/authentication/backend.py
index 38668eb..f1d2ece 100644
--- a/backend/authentication/backend.py
+++ b/backend/authentication/backend.py
@@ -1,6 +1,5 @@
import jwt
import typing as t
-from abc import ABC
from starlette import authentication
from starlette.requests import Request
@@ -10,11 +9,11 @@ from backend import constants
from .user import User
-class JWTAuthenticationBackend(authentication.AuthenticationBackend, ABC):
+class JWTAuthenticationBackend(authentication.AuthenticationBackend):
"""Custom Starlette authentication backend for JWT."""
@staticmethod
- def get_token_from_header(header: str) -> t.Optional[str]:
+ def get_token_from_header(header: str) -> str:
"""Parse JWT token from header value."""
try:
prefix, token = header.split()
@@ -32,10 +31,10 @@ class JWTAuthenticationBackend(authentication.AuthenticationBackend, ABC):
async def authenticate(
self, request: Request
- ) -> t.Optional[t.Tuple[authentication.AuthCredentials, authentication.BaseUser]]:
+ ) -> t.Optional[tuple[authentication.AuthCredentials, authentication.BaseUser]]:
"""Handles JWT authentication process."""
if "Authorization" not in request.headers:
- return
+ return None
auth = request.headers["Authorization"]
token = self.get_token_from_header(auth)
@@ -47,7 +46,7 @@ class JWTAuthenticationBackend(authentication.AuthenticationBackend, ABC):
scopes = ["authenticated"]
- if payload.get("admin", False) is True:
+ if payload.get("admin") is True:
scopes.append("admin")
return authentication.AuthCredentials(scopes), User(token, payload)