diff --git a/app/dependencies.py b/app/dependencies.py
@@ -6,7 +6,7 @@ from sqlalchemy.orm import Session
from app.db import crud, User, GetDB
from app.models.admin import Admin, oauth2_scheme
-from app.utils.jwt import get_admin_payload
+from app.utils.auth import get_admin_payload
def get_db():
diff --git a/app/routes/admin.py b/app/routes/admin.py
@@ -11,7 +11,7 @@ from app.db import Session, crud
from app.db.models import Admin as DBAdmin
from app.dependencies import AdminDep, SudoAdminDep, DBDep
from app.models.admin import Admin, AdminCreate, AdminInDB, AdminModify, Token
-from app.utils.jwt import create_admin_token
+from app.utils.auth import create_admin_token
router = APIRouter(tags=["Admin"], prefix="/admins")
diff --git a/app/utils/jwt.py b/app/utils/auth.py
rename from app/utils/jwt.py
rename to app/utils/auth.py
@@ -1,7 +1,7 @@
from datetime import datetime, timedelta
from typing import Union
-from jose import JWTError, jwt
+import jwt
from app.config import get_secret_key
from app.config.env import JWT_ACCESS_TOKEN_EXPIRE_MINUTES
@@ -25,19 +25,20 @@ def create_admin_token(username: str, is_sudo=False) -> str:
def get_admin_payload(token: str) -> Union[dict, None]:
try:
payload = jwt.decode(token, get_secret_key(), algorithms=["HS256"])
- username: str = payload.get("sub")
- access: str = payload.get("access")
- if not username or access not in ("admin", "sudo"):
- return
- try:
- created_at = datetime.utcfromtimestamp(payload["iat"])
- except KeyError:
- created_at = None
-
- return {
- "username": username,
- "is_sudo": access == "sudo",
- "created_at": created_at,
- }
- except JWTError:
+ except jwt.DecodeError:
return
+
+ username: str = payload.get("sub")
+ access: str = payload.get("access")
+ if not username or access not in ("admin", "sudo"):
+ return
+ try:
+ created_at = datetime.utcfromtimestamp(payload["iat"])
+ except KeyError:
+ created_at = None
+
+ return {
+ "username": username,
+ "is_sudo": access == "sudo",
+ "created_at": created_at,
+ }
diff --git a/requirements.txt b/requirements.txt
@@ -19,7 +19,6 @@ pyTelegramBotAPI==4.15.2
python-decouple==3.8
python-dotenv==1.0.0
python-dateutil==2.8.2
-python-jose==3.3.0
pytz==2023.3.post1
qrcode==7.4.2
requests==2.32.2
@@ -36,3 +35,4 @@ xxhash==3.4.1
grpcio==1.60.0
psycopg==3.1.18
v2share==0.1.0b9
+PyJWT~=2.8.0
\ No newline at end of file