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 {}