Deine Aufgabe ist es, der bereits erstellten RESTful API für die ToDo-Liste eine Authentifizierungsfunktionalität hinzuzufügen. Dazu sollst du Flask-Login verwenden.
Füge Flask-Login >= 0.6.3
in deine requirements.txt Datei hinzu und installiere es.
from flask_login import LoginManager login_manager = LoginManager() login_manager.init_app(app)
User
-Klasse, um die Methoden und Eigenschaften, die von Flask-Login erwartet werden, zu implementieren. Du kannst dies tun, indem du deine Klasse von UserMixin
erbst.UserDao
-Klasse um den User in die Datenbank zu speichern und daraus zu lesen.user_loader
-Anforderungen erfüllt.@login_manager.user_loader def load_user(user_id): return user_dao.get_user_by_id(int(user_id))
@login_required
-Dekorator zu deinen ToDo-Endpunkten hinzu, um sicherzustellen, dass nur authentifizierte Benutzer darauf zugreifen können.from flask_login import login_required @app.route('/todos', methods=['GET']) @login_required def get_all_todos(): # Dein Code hier
Login
und Logout
, die die Methoden von Flask-Login verwenden.from flask_login import login_user, logout_user @app.route('/login', methods=['POST']) def login(): # Dein Code hier @app.route('/logout', methods=['POST']) def logout(): # Dein Code hier
Die Abgabe der Lösung erfolgt als Push in das persönliche GitHub-Repository.
GitHub Repository https://github.com/templates-python/m323-lu06-a05-authentication
Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden