我只希望登录用户访问我的 RESTfull API。我一直在搜索,找不到任何告诉我如何做的来源。很奇怪,因为我认为保护数据很常见。
我正在使用一个Flask
带有Flask-login
and的项目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'])
我应该如何限制未登录的用户对我的 RESTfull api 的访问,或者我不能使用 flask-restless 进行访问?如果没有,我应该/可以更好地使用什么?
我正在尝试一些技术,所以欢迎任何方向的建议!
提前致谢
在玩了一些之后,我找到了解决方案。它可能不是最好的,但它不需要太多代码就可以解决问题:
@app.before_request
def before_request():
if ('/api/' in str(request.url_rule)) && (not current_user.is_authenticated()):
return redirect('/login')
这是正确的方法吗?为每个可能的 HTTP 请求添加 Preprosessors 需要大量代码。https://flask-restless.readthedocs.org/en/latest/customizing.html#request-preprocessors-and-postprocessors