Files
ChatBot/frontend/app.py
2025-10-03 00:52:43 +02:00

74 lines
2.5 KiB
Python

from flask import Flask, render_template, request, redirect, url_for, flash
import hashlib
def hash_password(password):
return hashlib.sha512(password.strip().encode('utf-8')).hexdigest()
app = Flask(__name__)
app.secret_key = 'your_secret_key'
@app.route('/')
def home():
return redirect(url_for('login'))
@app.route('/register', methods=['GET', 'POST'])
def register():
import sqlLite.get as getter
import sqlLite.set as setter
import useful.hash as hasher
if request.method == 'POST':
username = request.form['username'].strip()
email = request.form.get('email').strip()
password = request.form.get('password').strip()
pwd_confirm = request.form.get('confirm_password').strip()
if not email or not password or not pwd_confirm or not username:
flash('Please fill out all fields', 'error')
return redirect(url_for('register'))
if password != pwd_confirm:
flash('Passwords do not match', 'error')
return redirect(url_for('register'))
# Hash the password
hashed_password = hasher.sha512(password.encode('utf-8')).hexdigest()
try:
# Call your setter function to add user to DB
setter.set_login(username, email, hashed_password)
flash('Registration successful! Please log in.', 'success')
return redirect(url_for('login'))
except Exception as e:
flash(f'Error: {str(e)}', 'error')
return redirect(url_for('register'))
return render_template('register.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
enter_email = request.form.get('email')
enter_password = request.form.get('password')
import hashlib
import sqlLite.get as getter
stored_hash = getter.get_password_by_email(enter_email) # use email here
if stored_hash is None:
flash("User not found!")
return redirect(url_for("login"))
hash_entered = hashlib.sha512(enter_password.encode('utf-8')).hexdigest()
if hash_entered == stored_hash:
return redirect(url_for('dashboard'))
else:
flash('Invalid email or password', 'error')
print("Stored hash:", stored_hash)
print("Entered hash:", hash_entered)
return redirect(url_for('login'))
return render_template('login.html')
@app.route('/dashboard')
def dashboard():
return "Welcome to the dashboard! Login successful."