flask web app (wip)
This commit is contained in:
@ -1,11 +1,12 @@
|
||||
from flask import Flask, jsonify, request
|
||||
from flask_login import LoginManager, UserMixin, login_user, login_required, current_user
|
||||
from flask import Flask, jsonify, request, render_template, redirect, url_for
|
||||
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user
|
||||
import secrets
|
||||
from modules import storage # Import your storage module
|
||||
from modules import storage
|
||||
|
||||
app = Flask(__name__)
|
||||
app = Flask(__name__, template_folder='../templates', static_folder='../static')
|
||||
app.config['SECRET_KEY'] = 'your-secret-key'
|
||||
login_manager = LoginManager(app)
|
||||
login_manager.login_view = 'login'
|
||||
|
||||
class User(UserMixin):
|
||||
def __init__(self, id, username, email):
|
||||
@ -20,18 +21,34 @@ def load_user(user_id):
|
||||
return User(id=user_data['id'], username=user_data['username'], email=user_data['email'])
|
||||
return None
|
||||
|
||||
@app.route('/login', methods=['POST'])
|
||||
@app.route('/')
|
||||
def index():
|
||||
return render_template('index.html')
|
||||
|
||||
@app.route('/login', methods=['GET', 'POST'])
|
||||
def login():
|
||||
data = request.json
|
||||
username = data.get('username')
|
||||
password = data.get('password')
|
||||
|
||||
user = storage.authenticate_user(username, password)
|
||||
if user:
|
||||
login_user(User(id=user['id'], username=user['username'], email=user['email']))
|
||||
return jsonify({'message': 'Login successful'}), 200
|
||||
else:
|
||||
return jsonify({'message': 'Invalid credentials'}), 401
|
||||
if request.method == 'POST':
|
||||
username = request.form.get('username')
|
||||
password = request.form.get('password')
|
||||
|
||||
user = storage.authenticate_user(username, password)
|
||||
if user:
|
||||
login_user(User(id=user['id'], username=user['username'], email=user['email']))
|
||||
return redirect(url_for('dashboard'))
|
||||
else:
|
||||
return render_template('login.html', error='Invalid credentials')
|
||||
return render_template('login.html')
|
||||
|
||||
@app.route('/logout')
|
||||
@login_required
|
||||
def logout():
|
||||
logout_user()
|
||||
return redirect(url_for('index'))
|
||||
|
||||
@app.route('/dashboard')
|
||||
@login_required
|
||||
def dashboard():
|
||||
return render_template('dashboard.html')
|
||||
|
||||
@app.route('/generate_api_key', methods=['POST'])
|
||||
@login_required
|
||||
|
Reference in New Issue
Block a user