-
Notifications
You must be signed in to change notification settings - Fork 1
/
app.py
40 lines (34 loc) · 1.32 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# flask app serving a web interface with user authentication
from flask import Flask, render_template, request, redirect, url_for
from flask import session as login_session
app = Flask(__name__)
app.debug = True
app.secret_key = 'verysecretkey'
app.config['SESSION_TYPE'] = 'filesystem'
@app.route('/default', methods=['GET'])
def default():
if login_session.get('username') is None:
return redirect(url_for('login'))
return render_template('default.html')
@app.route('/', methods=['GET', 'POST'])
def login():
if login_session.get('username') is not None:
return redirect(url_for('default'))
# check if request is valid
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
# check if username and password are correct
if username == 'admin' and password == 'admin':
# create a session token
login_session['username'] = username
return redirect(url_for('default'))
else:
# invalid username or password
return redirect(url_for('login'))
return render_template('login.html')
@app.route('/logout', methods=['GET'])
def logout():
if login_session.get('username') is not None:
login_session.pop('username', None)
return redirect(url_for('login'))