Spaces:
Sleeping
Sleeping
File size: 1,224 Bytes
51ac0e6 e52216d 4ac3e9a e52216d 51ac0e6 e52216d 51ac0e6 4ac3e9a 51ac0e6 4ac3e9a 51ac0e6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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 {} |