Refactor token creation logic and fix datetime usage

Adjusted `datetime.utcnow` to `datetime.now` for consistency and refactored token creation functions for cleaner structure. Removed duplicated `create_access_token` and `create_refresh_token` definitions by consolidating them into a single location.
This commit is contained in:
2025-02-28 17:32:20 +01:00
parent 3912537477
commit af53b52c0c

View File

@@ -50,7 +50,6 @@ def create_tokens(user_id: str) -> TokenResponse:
user_id=user_id
)
def create_token(
data: dict,
expires_delta: Optional[timedelta] = None,
@@ -60,9 +59,9 @@ def create_token(
to_encode = data.copy()
if expires_delta:
expire = datetime.utcnow() + expires_delta
expire = datetime.now() + expires_delta
else:
expire = datetime.utcnow() + (
expire = datetime.now() + (
timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) if token_type == "access"
else timedelta(days=REFRESH_TOKEN_EXPIRE_DAYS)
)
@@ -70,12 +69,20 @@ def create_token(
to_encode.update({
"exp": expire,
"type": token_type,
"iat": datetime.utcnow(),
"iat": datetime.now(),
"jti": str(uuid4())
})
return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
def create_access_token(data: dict, expires_delta: Optional[timedelta] = None) -> str:
"""Create a new access token."""
return create_token(data, expires_delta, "access")
def create_refresh_token(data: dict, expires_delta: Optional[timedelta] = None) -> str:
"""Create a new refresh token."""
return create_token(data, expires_delta, "refresh")
def decode_token(token: str, required_type: str = "access") -> TokenPayload:
"""
@@ -130,15 +137,3 @@ def decode_token(token: str, required_type: str = "access") -> TokenPayload:
except JOSEError as e: # All other JOSE-related errors
raise JWTError("Invalid token.") from e
def create_access_token(data: dict, expires_delta: Optional[timedelta] = None) -> str:
"""Create a new access token."""
return create_token(data, expires_delta, "access")
def create_refresh_token(data: dict, expires_delta: Optional[timedelta] = None) -> str:
"""Create a new refresh token."""
return create_token(data, expires_delta, "refresh")