Я хочу, чтобы только зарегистрированные пользователи имели доступ к моему RESTfull API. Я искал повсюду и не мог найти ни одного источника, который сказал бы мне, как это сделать. Странно, потому что я думаю, что защита данных очень распространена.
Я использую проект Flask
с Flask-login
и flask-Restless
. Я CRUD свои данные через SQL-alchemy
классов для доступа к моей базе данных MySQL. Я создаю свой RESTfull API, например:
api_manager = APIManager(app, flask_sqlalchemy_db=db)
api_manager.create_api(Items, methods=['GET', 'POST', 'DELETE', 'PUT'])
Как мне ограничить доступ к моему API RESTfull для пользователей, которые не вошли в систему, или я не могу сделать это с flask-restless? Если нет, то что лучше/могу ли я использовать?
Я пробую некоторые методы, поэтому предложения в любых направлениях приветствуются!
заранее спасибо
После еще нескольких игр я нашел решение. Возможно, это не лучший вариант, но он делает свое дело без лишнего кода:
@app.before_request
def before_request():
if ('/api/' in str(request.url_rule)) && (not current_user.is_authenticated()):
return redirect('/login')
Это правильный путь? Добавление препроцессоров — это много кода для каждого возможного HTTP-запроса. https://flask-restless.readthedocs.org/en/latest/customizing.html#request-preprocessors-and-postprocessors