Mit der Flask-Erweiterung Flask-HTTPAuth ist dies sehr einfach.
Installation
$ pip install flask-httpauth
from flask_httpauth importiere HTTPBasicAuth
@ auth.get_password
app.py
from flask import Flask
from flask_httpauth import HTTPBasicAuth
app = Flask(__name__)
auth = HTTPBasicAuth()
users = {
"john": "hello",
"susan": "bye"
}
@auth.get_password
def get_pw(username):
if username in users:
return users.get(username)
return None
@app.route('/')
@auth.login_required
def index():
return "Hello, %s!" % auth.username()
if __name__ == '__main__':
app.run()
Der Benutzername und das Passwort werden mit MD5 gehasht und dann an den Server gesendet. Maßnahmen gegen Abhören und Manipulieren, die durch die Standardauthentifizierung nicht verhindert werden konnten.
Ändern Sie einfach "HTTPBasicAuth" in "HTTPDigestAuth".
app.py
from flask import Flask
from flask_httpauth import HTTPDigestAuth
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret key here'
auth = HTTPDigestAuth()
users = {
"john": "hello",
"susan": "bye"
}
@auth.get_password
def get_pw(username):
if username in users:
return users.get(username)
return None
@app.route('/')
@auth.login_required
def index():
return "Hello, %s!" % auth.username()
if __name__ == '__main__':
app.run()
ToDo: Informieren Sie sich über "Pathlib", "es ist gefährlich"
Recommended Posts