Authentification de base, authentification Digest avec Flask

C'est très facile à faire avec l'extension Flask Flask-HTTPAuth.

Installation

$ pip install flask-httpauth

Authentification de base

  1. depuis flask_httpauth importer HTTPBasicAuth
  2. Créez une instance ʻauthavec ʻauth = HTTPBasicAuth ()
  3. Créez une fonction pour vérifier le mot de passe: Décorez avec @ auth.get_password
  4. Décorez l'URL que vous souhaitez authentifier avec @ 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()

Authentification Digest

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

Authentification de base, authentification Digest avec Flask
Certification Flask Basic
Authentification BASIC avec bouteille Python
Processus d'authentification avec gRPC et authentification Firebase
Authentification sans mot de passe avec RDS et IAM (Python)
POSTER diversement avec Python et recevoir avec Flask
Mémo de base Flask
Obtenez une authentification de base avec CloudFront Lambda @ Edge avec Python 3.8
Essayez l'authentification OAuth Slack avec Flask (API Slack V2)
Lancer un serveur Web avec Python et Flask
Envoyer HTTP avec l'en-tête d'authentification de base en Python
Flux pour terminer l'authentification Slack avec Flask (Python)
Résumé du développement avec Django
Apprentissage automatique facile avec scikit-learn et flask ✕ Application Web
Analyser et visualiser JSON (application Web ⑤ avec Python + Flask)
Restriction IP avec Flask
POSTER l'image avec json et la recevoir avec flask
Bonjour le monde sur flacon
Avec et sans WSGI
Programmation avec Python Flask
Notes et manuels de référence lors de la création de services Web avec Flask
Créez facilement des systèmes d'authentification, de gestion des utilisateurs et multilingues avec Flask-AppBuilder
Authentification de base avec mot de passe crypté (.htpasswd) avec bouteille en python
L'authentification Twitter utilisant Flask et React est très agressive avec WebSocket
La comparaison et l'optimisation des vitesses BASIC et C et assembleur jouent avec IchigoJam
Créer une fonction d'authentification à l'aide de django-allauth et CustomUser dans Django
Avec moi, cp et sous-processus
Chiffrement et déchiffrement avec Python
Déployez Flask avec ZEIT maintenant
Travailler avec le tkinter et la souris
Python et matériel - Utilisation de RS232C avec Python -
Touch Flask + courir avec Heroku
Bonjour le monde avec Flask + Hamlish
Test unitaire du flacon avec pytest
API avec Flask + uWSGI + Nginx
[Python] Utilisation d'OpenCV avec Python (basique)
Développement d'applications Web avec Flask
Installation de Python et grammaire de base
Statistiques de base et distribution gaussienne
Attaque de dictionnaire sur l'authentification de base
Envoi et réception d'images Flask
Voir la couverture du flacon avec pytest-cov
React and Flask to GCP
Super résolution avec SRGAN et ESRGAN
[Python] [SQLite3] Exploiter SQLite avec Python (basique)
Group_by avec sqlalchemy et sum
python avec pyenv et venv
Application Web avec Python + Flask ② ③
Téléchargement de fichiers avec Flask + jQuery
Avec moi, NER et Flair
Installation de Python (Python 3.7.7) et grammaire de base
Application Web avec Python + Flask ④
Fonctionne avec Python et R
J'ai créé un formulaire de tweet Nyanko avec Python, Flask et Heroku
Émission de jetons d'authentification Firebase en Python et validation de jetons avec Fast API