[PYTHON] Basisauthentifizierung, Digest-Authentifizierung mit Flask

Mit der Flask-Erweiterung Flask-HTTPAuth ist dies sehr einfach.

Installation

$ pip install flask-httpauth

Grundlegende Authentifizierung

  1. from flask_httpauth importiere HTTPBasicAuth
  2. Erstellen Sie eine "auth" -Instanz mit "auth = HTTPBasicAuth ()"
  3. Erstellen Sie eine Funktion zum Überprüfen des Passworts: Dekorieren Sie mit @ auth.get_password
  4. Dekorieren Sie die URL, die Sie authentifizieren möchten, mit "@ 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()

Digest-Authentifizierung

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

Basisauthentifizierung, Digest-Authentifizierung mit Flask
Flask Basic-Zertifizierung
BASIC-Authentifizierung mit Python-Flasche
Authentifizierungsprozess mit gRPC- und Firebase-Authentifizierung
Passwortlose Authentifizierung mit RDS und IAM (Python)
POST verschieden mit Python und empfange mit Flask
Flask Grundnotiz
Erreichen Sie eine grundlegende Authentifizierung mit CloudFront Lambda @ Edge mit Python 3.8
Versuchen Sie eine lockere OAuth-Authentifizierung mit einem Kolben (Slack API V2).
Starten Sie einen Webserver mit Python und Flask
Senden Sie HTTP mit dem Standardauthentifizierungsheader in Python
Flow, um die Slack-Authentifizierung mit Flask (Python) abzuschließen
Entwicklungsverdauung mit Django
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Analysieren und visualisieren Sie JSON (Webanwendung ⑤ mit Python + Flask)
IP-Einschränkung mit Flask
POST das Bild mit json und erhalte es mit der Flasche
Hallo Welt auf Flasche
Mit und ohne WSGI
Programmieren mit Python Flask
Notizen und Nachschlagewerke beim Erstellen von Webdiensten mit Flask
Erstellen Sie mit Flask-AppBuilder ganz einfach Authentifizierung, Benutzerverwaltung und mehrsprachige Systeme
Grundlegende Authentifizierung mit verschlüsseltem Passwort (.htpasswd) mit Flasche in Python
Die Twitter-Authentifizierung mit Flask and React ist mit WebSocket sehr erzwungen
BASIC und C sowie Assembler-Geschwindigkeitsvergleich und -optimierung spielen mit IchigoJam
Erstellen Sie eine Authentifizierungsfunktion mit django-allauth und CustomUser in Django
Bei mir cp und Subprocess
Ver- und Entschlüsselung mit Python
Stellen Sie Flask jetzt mit ZEIT bereit
Arbeiten Sie mit tkinter und Maus
Python und Hardware-Verwenden von RS232C mit Python-
Berühre Flask + laufe mit Heroku
Hallo Welt mit Flask + Hamlish
Testen Sie den Kolben mit einem Pytest
API mit Flask + uWSGI + Nginx
[Python] Verwenden von OpenCV mit Python (Basic)
Entwicklung von Webanwendungen mit Flask
Python-Installation und grundlegende Grammatik
Grundlegende Statistik und Gaußsche Verteilung
Wörterbuchangriff auf die Standardauthentifizierung
Senden und Empfangen von Kolbenbildern
Anzeigen der Kolbenabdeckung mit pytest-cov
Reagieren und Kolben zu GCP
Super Auflösung mit SRGAN und ESRGAN
[Python] [SQLite3] Betreiben Sie SQLite mit Python (Basic)
Group_by mit sqlalchemy und sum
Python mit Pyenv und Venv
Webanwendung mit Python + Flask ② ③
Datei-Upload mit Flask + jQuery
Mit mir, NER und Flair
Python (Python 3.7.7) Installation und grundlegende Grammatik
Webanwendung mit Python + Flask ④
Funktioniert mit Python und R.
Ich habe mit Python, Flask und Heroku ein Nyanko-Tweet-Formular erstellt
Ausgabe von Firebase-Authentifizierungstoken in Python und Token-Validierung mit Fast API