如何使用 Flask-USER 管理保护 Flask-RESTful?
Posted
技术标签:
【中文标题】如何使用 Flask-USER 管理保护 Flask-RESTful?【英文标题】:How to protect Flask-RESTful with Flask-USER management? 【发布时间】:2018-01-07 06:09:58 【问题描述】:我在网页端使用 Flask-User 布置和保护了一组用户角色。现在我想允许他们对我的 API 进行 REST 调用,这些调用将使用@roles_required
进行划分以过滤请求。如何进行 REST 登录并将令牌\凭据传递给 Flask-USER 以使 @roles_required
工作?
【问题讨论】:
【参考方案1】:你必须查看Dillon Dixan 的仓库,他在那里提出了一个非常漂亮的例子,它可以帮助你实现你的查询。下面是示例代码:
from flask import Flask
from flask_basic_roles import BasicRoleAuth
app = Flask(__name__)
auth = BasicRoleAuth()
# Let's add some users.
auth.add_user(user='bob', password='secret123', roles='producer')
auth.add_user(user='alice', password='drowssap', roles=('producer','consumer'))
auth.add_user(user='bill', password='54321')
auth.add_user(user='steve', password='12345', roles='admin')
# Only producers and admins can post, while consumers can only get.
# Admins can also perform all other verbs.
@app.route("/task")
@auth.require(roles=
'POST': 'producer',
'GET': 'consumer',
'DELETE,POST,PATCH,PUT,GET': 'admin'
)
def tasks_endpoint(methods=(...)):
return "Here tasks get produced and consumed!"
# We can secure by user too. Steve can use any verb on this
# endpoint and everyone else is denied access.
@app.route("/task_status")
@auth.require(users='steve')
def task_status_endpoint(methods=(...)):
return "Here are the task statuses!"
# Alice, Bill and users with an 'admin' role can access this, while everyone
# else is denied on all verbs.
@app.route("/task_failures")
@auth.require(users=('alice', 'bill'), roles='admin')
def task_failures(methods=(...)):
return "Here are the task failures!"
# Everyone including unauthenticated users can view task results.
@app.route("/task_results")
def task_results(methods=(...)):
return "Here are the task results!"
if __name__ == "__main__":
app.run()
您需要做的就是使用pip
安装库flask_basic_roles
。
休息一下,您可以查看示例,肯定会对您有所帮助。
另外,您还可以访问查看:https://github.com/raddevon/flask-permissions 请从这里阅读烧瓶许可:https://pythonhosted.org/Flask-Security/。
【讨论】:
以上是关于如何使用 Flask-USER 管理保护 Flask-RESTful?的主要内容,如果未能解决你的问题,请参考以下文章
资产监测设备中HCL190FLAS擦写问题分析——HCL190
环境监测设备中HCL190FLAS擦写问题定位——APP程序区