[PYTHON] Ich konnte die Web-App-Authentifizierung mit Flask-Login implementieren

Überblick

Ich erstelle eine Webanwendung mit flask. Ich konnte es mit fast README-Kopieren und Einfügen der Site implementieren, auf die ich unten verwiesen habe. Der Code in diesem Artikel muss die Logik für den Kennwortabgleich schreiben.

Die Seite, die ich als Referenz verwendet habe

https://github.com/maxcountryman/flask-login

offizielle Dokumentation für den Flask-Login https://flask-login.readthedocs.io/en/latest/

Beschreibung des Kolben-Logins

Flask-Login bietet die Verwaltung von Flask-Benutzersitzungen. Erledigt allgemeine Aufgaben wie Anmelden, Abmelden und Speichern von langfristigen Benutzersitzungen.

Implementierung

$ pip install flask flask-login
import flask
import flask_login


login_manager = flask_login.LoginManager()
login_manager.init_app(app)

app = flask.Flask(__name__)
app.secret_key = 'super secret string'  # Change this!

# Our mock database.
users = {'[email protected]': {'password': 'secret'}}

class User(flask_login.UserMixin):
    pass


@login_manager.user_loader
def user_loader(email):
    if email not in users:
        return

    user = User()
    user.id = email
    return user


@login_manager.request_loader
def request_loader(request):
    email = request.form.get('email')
    if email not in users:
        return

    user = User()
    user.id = email

    # DO NOT ever store passwords in plaintext and always compare password
    # hashes using constant-time comparison!
    user.is_authenticated = request.form['password'] == users[email]['password']

    return user

@app.route('/login', methods=['GET', 'POST'])
def login():
    if flask.request.method == 'GET':
        return '''
               <form action='login' method='POST'>
                <input type='text' name='email' id='email' placeholder='email'/>
                <input type='password' name='password' id='password' placeholder='password'/>
                <input type='submit' name='submit'/>
               </form>
               '''

    email = flask.request.form['email']
    if flask.request.form['password'] == users[email]['password']:
        user = User()
        user.id = email
        flask_login.login_user(user)
        return flask.redirect(flask.url_for('protected'))

    return 'Bad login'


@app.route('/protected')
@flask_login.login_required
def protected():
    return 'Logged in as: ' + flask_login.current_user.id

@app.route('/logout')
def logout():
    flask_login.logout_user()
    return 'Logged out'

@login_manager.unauthorized_handler
def unauthorized_handler():
    return 'Unauthorized'

if __name__ == '__main__':
    app.run(host="0.0.0.0",port=8000,debug=True)

Prüfung

Möglicherweise möchten Sie versuchen, es basierend auf den folgenden Anweisungen zu implementieren. https://github.com/maxcountryman/flask-login/blob/master/test_login.py

Recommended Posts

Ich konnte die Web-App-Authentifizierung mit Flask-Login implementieren
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich war süchtig danach, keine E-Mail-Adresse von Google mit Django-Allauth-Authentifizierung zu erhalten
Python: Ich konnte in Lambda rekursieren
Ich konnte AWS-Batch mit Python, Moto verspotten, also werde ich es verlassen
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, Mine Sweeper auf dem Terminal mit Python zu implementieren
Ich war süchtig danach, 2020 mit Selen (+ Python) zu kratzen
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Dataset)
Python: Kann in Lambda wiederholt werden
Stellen Sie eine mit Streamlit erstellte Web-App für Heroku bereit
Ein Anfänger versuchte, eine Strichzeichnung mit einem Kettenmesser zu färben. Ich konnte es schaffen.
So stellen Sie eine mit Flask erstellte Web-App für Heroku bereit
Ich möchte Daten mit Python analysieren können (Teil 3)
[IOS] GIF-Animation mit Pythonista3. Ich war süchtig danach.
Ich möchte Daten mit Python analysieren können (Teil 1)
Ich habe versucht, mit Quantx einen Ausbruch (Typ der Täuschungsvermeidung) zu implementieren
Ich habe versucht, PCANet zu implementieren
Ich möchte Daten mit Python analysieren können (Teil 4)
Ich möchte Daten mit Python analysieren können (Teil 2)
Ich habe versucht, ListNet of Rank Learning mit Chainer zu implementieren
Ich habe versucht, Harry Potters Gruppierungshut mit CNN umzusetzen
Ich habe versucht, StarGAN (1) zu implementieren.
Ich habe versucht, SSD jetzt mit PyTorch zu implementieren (Modellversion)
Beachten Sie, dass ich süchtig danach war, mit Pythons mysql.connector über eine Webanwendung auf die Datenbank zuzugreifen
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
Was ich mit json.dumps in Pythons base64-Codierung süchtig gemacht habe
Ich habe versucht zusammenzufassen, was mit Qiita mit Word Cloud ausgegeben wurde
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Ich habe versucht, die Satzklassifizierung durch Self Attention mit PyTorch zu implementieren
Ich habe versucht, Deep VQE zu implementieren
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, eine kontroverse Validierung zu implementieren
Ich möchte ○○ mit Pandas machen
Ich habe versucht, Realness GAN zu implementieren
Ich möchte mit Python debuggen
Ich war süchtig nach Multiprocessing + Psycopg2
Ich konnte den Thermodrucker "PAPERANG" aus Python (Windows10, Python3.6) drucken.
Ich habe versucht, Deep Learning zu implementieren, das nicht nur mit NumPy tiefgreifend ist
Ich habe versucht, eine Blockchain zu implementieren, die tatsächlich mit ungefähr 170 Zeilen funktioniert
Ich war süchtig danach, Tensorflow auf einer GPU mit dem NVIDIA-Treiber 440 + CUDA 10.2 auszuführen
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Eine Geschichte, die ich süchtig danach war, eine Video-URL mit Tweepy zu bekommen
Verwenden Sie Python aus Java mit Jython. Ich war auch süchtig danach.
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich war süchtig danach, Markdown nicht für die lange Beschreibung von Pypi verwenden zu können
Ich war süchtig danach, Cython mit PyCharm auszuprobieren, also machen Sie sich eine Notiz
Ich konnte den Sortieralgorithmus (mit variabler Länge und Ordnungsflag) mit RNN maschinell lernen, der den Speicher manipuliert!
Ich habe versucht, PLSA in Python zu implementieren
Ich möchte Objekte mit OpenCV erkennen
Ich habe versucht, Permutation in Python zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Spielen Sie wie eine Web-App mit ipywidgets
Ich habe versucht, mit Hy anzufangen
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich war süchtig danach, mysqlclient zu installieren