import secrets\r
from base64 import b32encode\r
-from datetime import datetime, timedelta\r
+from datetime import datetime, timedelta, timezone\r
\r
from fastapi import Depends, HTTPException, Request\r
from fastapi.security import OAuth2PasswordBearer\r
self.session_expiry_days = get_env(\r
"FLATNOTES_SESSION_EXPIRY_DAYS", default=30, cast_int=True\r
)\r
+ if self.session_expiry_days < 0:\r
+ self.session_expiry_days = 0\r
\r
# TOTP\r
self.is_totp_enabled = False\r
\r
def _create_access_token(self, data: dict):\r
to_encode = data.copy()\r
- expiry_datetime = datetime.utcnow() + timedelta(\r
- days=self.session_expiry_days\r
+ expiry_datetime = datetime.now(timezone.utc) + timedelta(\r
+ days=self.session_expiry_days,\r
+ seconds=30\r
)\r
to_encode.update({"exp": expiry_datetime})\r
encoded_jwt = jwt.encode(\r