commits
tags
from functools import wraps
from flask import session, request, jsonify, redirect, url_for
def login_required(f):
@wraps(f)
def decorated(*args, **kwargs):
if not session.get('logged_in'):
is_xhr = request.headers.get('X-Requested-With') == 'XMLHttpRequest'
wants_json = request.is_json or 'application/json' in request.headers.get('Accept', '')
if is_xhr or wants_json or request.path.startswith('/api/'):
return jsonify({'error': 'login_required'}), 401
return redirect(url_for('login', next=request.path))
return f(*args, **kwargs)
return decorated