from flask import Flask from flask_login import LoginManager app = Flask(__name__) app.secret_key = 'supersecretkey' login_manager = LoginManager() login_manager.init_app(app)
from flask import render_template, request, redirect, url_for from flask_login import login_required, login_user, current_user from models import User @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': email = request.form['email'] password = request.form['password'] user = User.query.filter_by(email=email).first() if user and User.check_password(user.password, password): login_user(user) return redirect(url_for('home')) else: return render_template('login.html', error='Invalid email or password') else: return render_template('login.html')
@app.route('/profile') @login_required def profile(): return render_template('profile.html', user=current_user)This view is only accessible to logged-in users, as indicated by the `@login_required` decorator. If a user tries to access it without first logging in, they will be redirected to the login page. Overall, the flask.ext.login package library provides a straightforward way to add user authentication functionalities to a Flask web application.