Login-required decorator for JSON routes

Answer 401 JSON instead of redirecting to the login page.

flask intermediate #auth#decorators#api
在游乐场中打开
flask-api-login-required.py
from functools import wraps
from flask import jsonify
from flask_login import current_user


def api_login_required(view):
    @wraps(view)
    def wrapper(*args, **kwargs):
        if not current_user.is_authenticated:
            return jsonify(error="login_required"), 401
        return view(*args, **kwargs)
    return wrapper