Skip to content

Instantly share code, notes, and snippets.

@benjiao
Last active November 11, 2016 23:23
Show Gist options
  • Save benjiao/7c8939fb538929e6c311 to your computer and use it in GitHub Desktop.
Save benjiao/7c8939fb538929e6c311 to your computer and use it in GitHub Desktop.
Flask Login Example
from flask import session
from flask import request
from flask import redirect
from functools import wraps
app = Flask(__name__)
app.secret_key = '86A611287CE4DC76545575687F84F'
def login_required(test):
@wraps(test)
def wrap(*args, **kwargs):
if 'username' in session:
return test(*args, **kwargs)
else:
app.logger.info("Unauthorized access attempted!")
return redirect('login')
return wrap
@app.route('/admin')
@login_required
def admin():
return "<h1>Admin Page</h1>"
@app.route('/login', methods=['GET'])
def login():
return """
<h1>Login Page!</h1>
<form method='post' action='/login'>
<input type='text' name='username' /><br />
<input type='password' name='password' /><br />
<input type='submit' />
</form>
"""
@app.route('/login', methods=['POST'])
def login_submit():
username = request.form["username"]
password = request.form["password"]
if password != "password":
return "Failed!"
else:
print username
session['username'] = "Benjie"
return "Success! Logged in as %s" % username
@app.route('/logout')
def logout():
session.pop('username', None)
redirect('login')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment