#!/usr/bin/env python # encoding: utf-8 from __future__ import unicode_literals from bottle import default_app, get, post, auth_basic, run, request, abort from beaker.middleware import SessionMiddleware app = default_app() app = SessionMiddleware(app, { 'session.type': 'cookie', 'session.cookie_expire': True, 'session.auto': True, 'session.validate_key': 'arandomkeystring', }) def auth_check(username, password): return username == 'user' and password == 'pass' @post('/login') @auth_basic(check=auth_check) def login(): if 'name' not in request.forms: abort(400, 'I need you name, hitchhiker!') session = request.environ['beaker.session'] session['user'] = request.forms['name'] return 'ok' @get('/whoami') @auth_basic(check=auth_check) def whoami(): session = request.environ['beaker.session'] return 'You are ' + session.get('user', 'a guest') run(app=app, host='127.0.0.1', port=5050)