from flask import jsonify, redirect, request from flask_login import LoginManager def init_login_manager(app, login_url_builder, load_user, api_prefixes=("/api/",)): login_manager = LoginManager() login_manager.init_app(app) login_manager.user_loader(load_user) @login_manager.unauthorized_handler def unauthorized(): # API clients get JSON instead of a redirect to the login page. if request.path.startswith(tuple(api_prefixes)): return jsonify({"error": "authentication required"}), 401 return redirect(login_url_builder(request)) return login_manager