You can download this code by clicking the button below.
This code is now available for download.
This code snippet implements a simple login system based on Flask and Flask-Login, including login, logout, and protected route functionalities.
Technology Stack : Flask, Flask-Login
Code Type : The type of code
Code Difficulty : Intermediate
from flask import Flask, request, jsonify
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user
app = Flask(__name__)
app.secret_key = 'super secret key'
# Initialize the login manager
login_manager = LoginManager()
login_manager.init_app(app)
# Dummy user loader
@login_manager.user_loader
def load_user(user_id):
return User(user_id=user_id)
class User(UserMixin):
def __init__(self, user_id):
self.id = user_id
def login_with_redirect():
# This function handles the login process and redirects the user after successful login
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
if username == 'admin' and password == 'password':
user = User(user_id=username)
login_user(user)
return jsonify({"message": "Login successful"}), 200
else:
return jsonify({"message": "Invalid username or password"}), 401
@app.route('/login', methods=['POST'])
@login_required
def protected():
# This route is protected and can only be accessed by logged in users
return jsonify({"message": "This is a protected route"}), 200
@app.route('/logout')
@login_required
def logout():
# This function handles the logout process
logout_user()
return jsonify({"message": "Logout successful"}), 200
if __name__ == '__main__':
app.run(debug=True)