Spaces:
Sleeping
Sleeping
| 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 {} |