age-better / auth /auth_handler.py
Abineshkumar
Add application file
4ac3e9a
import time
import jwt
from typing import Dict
# Load secret and algorithm from environment variables
SECRET_KEY="use your secret code with secrets.token_hex(10)"
ALGORITHM="HS256"
FIREBASE_API_KEY="AIzaSyDCu6_7nNK63tkX1EONVz3ndIVd6frcy9Y"
def token_response(token: str) -> Dict[str, str]:
return {
"access_token": token
}
def signJWT(user_id: str) -> Dict[str, str]:
"""Sign a JWT for the user."""
payload = {
"user_id": user_id,
"expires": time.time() + 600 # 10-minute expiration
}
token = jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM)
return token_response(token)
def decodeJWT(token: str) -> dict:
"""Decode a JWT token."""
try:
decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
return decoded_token if decoded_token["expires"] >= time.time() else None
except:
return {}
def decodeJWT(token: str) -> dict:
try:
# Decode JWT to get payload containing user_id
decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
# Ensure token has not expired
return decoded_token if decoded_token["expires"] >= time.time() else None
except:
return {}