Files

18 lines
618 B
Python

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