import random import jwt import datetime import os from dotenv import load_dotenv from database import register_user, login_user_db, save_otp, verify_otp_db load_dotenv() SECRET_KEY = os.getenv("JWT_SECRET", "fallback_secret") # ---------------- OTP ---------------- def generate_otp(): return str(random.randint(100000, 999999)) # ---------------- SIGNUP ---------------- def signup_user(email, password): return register_user(email, password) # ---------------- LOGIN ---------------- def login_user(email, password): return login_user_db(email, password) # ---------------- OTP VERIFY ---------------- def verify_user_otp(email, otp): return verify_otp_db(email, otp) # ---------------- JWT ---------------- def create_jwt(email): payload = { "email": email, "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1) } token = jwt.encode(payload, SECRET_KEY, algorithm="HS256") return token # ---------------- VERIFY TOKEN ---------------- def verify_jwt(token): try: decoded = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) return decoded except: return None