Flask-HTAuth provides Flask apps with easy to integrate basic HTTP authentication. The extension supports standard htpasswd files.
Install with the usual:
pip install flask-htauth
or download source from GitHub:
git clone https://github.com/tomekwojcik/flask-htauth.git
cd flask-htauth
python setup.py develop
Flask-HTAuth uses the following settings:
HTAUTH_HTPASSWD_PATH
- path to htpasswd file,HTAUTH_REALM
- authentication realm (defaults toProtected Area
)
from flask import Flask, g
from flask.ext import htauth
import os
HTPASSWD = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'htpasswd')
app = Flask(__name__)
app.config['HTAUTH_HTPASSWD_PATH'] = HTPASSWD
app.config['HTAUTH_REALM'] = 'Top Secret Area'
auth = htauth.HTAuth(app)
@app.route('/')
def app_index():
return 'Hello, World!'
@app.route('/secret')
@htauth.authenticated
def app_secret():
return 'Hello, ' + g.htauth_user + '!'
If the request is missing Authorization
header or auth data is invalid the authenticated
decorator will return response that will force the user agent to request authentication data from the user.
- Basic auth,
- Support for MD5, SHA and crypt htpasswd password encrypting.
Flask-HTAuth is licensed under MIT License. See LICENSE for more details.
Flask-HTAuth is developed by BTHLabs. The extension was inspired by django-htauth. Uses MD5 crypt code from this snippet.