From 861b6f0f71ef51475d12de98157cb90e1ba440aa Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Mon, 2 May 2016 11:58:28 -0600 Subject: [PATCH] Implement a simple logout mechanism I would have done a DELETE to /login/ to make it like a resource but my browser won't do a raw
with method="DELETE" :( --- templates/index.html | 3 +++ vanth/server.py | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/templates/index.html b/templates/index.html index 4ee751c..956f36f 100644 --- a/templates/index.html +++ b/templates/index.html @@ -2,6 +2,9 @@ {% if current_user and current_user.is_authenticated %}

Hello {{ current_user.name }} from Vanth

+ + Log out +
{% else %}

Please log in

diff --git a/vanth/server.py b/vanth/server.py index 2f88edc..9da9866 100644 --- a/vanth/server.py +++ b/vanth/server.py @@ -18,10 +18,16 @@ def load_user(user_id): def login(): if flask.request.method == 'GET': return flask.render_template('index.html') - else: + elif flask.request.method == 'POST': user = vanth.user.load(uuid.uuid4()) flask_login.login_user(user) - return flask.redirect('/') + elif flask.request.method == 'DELETE': + flask_login.logout_user() + return flask.redirect('/') + +def logout(): + flask_login.logout_user() + return flask.redirect('/') def create_app(config): app = flask.Flask('vanth', template_folder='../templates') @@ -40,7 +46,8 @@ def create_app(config): ) app.route('/', methods=['GET'])(index) - app.route('/login/', methods=['GET', 'POST'])(login) + app.route('/login/', methods=['GET', 'POST', 'DELETE'])(login) + app.route('/logout/', methods=['POST'])(logout) sepiida.endpoints.add_resource(app, vanth.api.about.About, endpoint='about')