Files
calendar/backend/auth.py
T
2026-08-03 15:47:28 +02:00

59 lines
1.0 KiB
Python

from database import execute, fetch_one
import bcrypt
from jose import jwt, JWTError
from datetime import datetime, timedelta
SECRET_KEY = ""
ALGORITHM = "HS256"
def create_token(user_id):
payload = {
"user_id": user_id,
"exp": datetime.utcnow() + timedelta(hours=24)
}
token = jwt.encode(
payload,
SECRET_KEY,
algorithm=ALGORITHM
)
return token
def create_user(username, password):
password_hash = bcrypt.hashpw(
password.encode(),
bcrypt.gensalt()
).decode()
user_id = execute(
"""
INSERT INTO users (username, password_hash)
VALUES (?, ?)
""",
(username, password_hash)
)
return user_id
def verify_user(username, password):
user = fetch_one(
"SELECT * FROM users WHERE username = ?",
(username,)
)
if not user:
return None
if bcrypt.checkpw(
password.encode(),
user["password_hash"].encode()
):
return user["id"]
return None