Added auth

This commit is contained in:
Verox 2024-01-10 20:10:55 +01:00
parent 25b2ec186e
commit e8149c004f
7 changed files with 126 additions and 5 deletions

39
app2.py Normal file
View File

@ -0,0 +1,39 @@
import datetime
from flask import Flask, render_template
from flask_login import login_required, LoginManager
import auth
from models.User import User
# Create a new Flask instance
app = Flask(__name__)
# Create a new route
@app.route('/')
def index():
# return 'Hello World'
return render_template('index.html', title='Home', utc_dt=datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S"))
@app.route('/test')
@login_required
def secret():
return 'Pssst!'
app.register_blueprint(auth.auth)
# Run the application
if __name__ == '__main__':
login_manager = LoginManager()
login_manager.login_view = 'auth.login'
login_manager.init_app(app)
app.secret_key = 'PSSSSSHHHT!'
@login_manager.user_loader
def load_user(user_id):
return User(user_id, "Test", "test@example.com")
app.run(port=5000, debug=True)

30
auth.py Normal file
View File

@ -0,0 +1,30 @@
from flask import Blueprint, render_template, redirect, url_for, request
from flask_login import login_required
auth = Blueprint('auth', __name__)
@auth.route('/login')
def login():
return render_template('auth/login.html')
@auth.route('/signup')
def signup():
return render_template('auth/signup.html')
@auth.route('/signup', methods=['POST'])
def signup_post():
email = request.form.get('email')
name = request.form.get('name')
password = request.form.get('password')
# Save user to database. Maybe log the user in directly.
return redirect(url_for('auth.login'))
@auth.route('/logout')
@login_required
def logout():
# Log out functionality
return redirect(url_for('main.index'))

5
models/User.py Normal file
View File

@ -0,0 +1,5 @@
class User:
def __init__(self, id: int, name: str, email: str):
self.id = id
self.name = name
self.email = email

0
requirements.txt Normal file
View File

28
templates/auth/login.html Normal file
View File

@ -0,0 +1,28 @@
{% extends 'layouts/main.html' %}
{% block content %}
<div class="card">
<h5 class="card-header">Login</h5>
<div class="card-body column">
<form method="POST" action="/login">
<div class="mb-3 row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="email" placeholder="email@example.com">
</div>
</div>
<div class="mb-3 row">
<label for="password" class="col-sm-2 col-form-label">Passwort</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="password">
</div>
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Einloggen</button>
</div>
</form>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,20 @@
{% extends 'layouts/main.html' %}
{% block content %}
<div class="column">
<h3>Login</h3>
<form method="POST" action="/login">
<div class="mb-3">
<label for="email" class="form-label">Email-Adresse</label>
<input type="email" class="form-control" id="email" placeholder="name@example.com">
</div>
<div class="mb-3">
<label for="name" class="form-label">Name</label>
<input type="text" class="form-control" id="name" placeholder="Max">
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-3">Registrieren</button>
</div>
</form>
</div>
{% endblock %}

View File

@ -16,7 +16,7 @@
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<ul class="navbar-nav mb-2 mb-lg-0 me-auto">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
@ -38,10 +38,9 @@
<a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
</li>
</ul>
<form class="d-flex">
<input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success" type="submit">Search</button>
</form>
<ul class="navbar-nav mb-2 mb-lg-0">
</ul>
</div>
</div>
</nav>