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