C'est très facile à faire avec l'extension Flask Flask-HTTPAuth.
Installation
$ pip install flask-httpauth
depuis flask_httpauth importer HTTPBasicAuth
avec ʻauth = HTTPBasicAuth ()
@ auth.get_password
@ auth.login_required
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()
Le nom d'utilisateur et le mot de passe sont hachés avec MD5 puis envoyés au serveur. Mesures contre l'écoute clandestine et la falsification qui ne pouvaient pas être évitées par l'authentification de base.
Changez simplement «HTTPBasicAuth» en «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: Renseignez-vous sur
pathlib
,c'est dangereux
Recommended Posts