确保在烧瓶中保护REST api

时间:2011-08-08 21:41:25

标签: python rest restful-authentication flask

我正在申请的应用程序使用了很多ajax调用。不幸的是,在研究如何限制对api的访问时,我遇到了麻烦。例如:

  • 我有一个表格,可以对http://site/api/tasks/bob进行ajax调用 我需要确保只有登录的bob可以读取该表 (否则知道模式的人可能会要求查看bob的 只需在浏览器中输入网址即可完成任务。
  • 在另一个页面上,同一个表需要能够调用http://site/api/tasks/all并显示所有用户的任务(只有管理员应该可以这样做)

感谢您抽出时间阅读本文,也许还可以回答。

1 个答案:

答案 0 :(得分:14)

您需要通过以下方式验证用户:

A)每个请求的HTTP-Auth(basicdigest)。

B)服务器端会话。 (用户验证并接收会话密钥 - 他们的用户信息存储在服务器的会话后端,附加到该密钥。一旦他们有会话,他们就可以发出请求将会话密钥传回给您(在URL或者一个cookie),他们有权访问的信息将返回给他们。)

Flask有一对有用的extensions处理大部分此类事情 - 请查看Flask-LoginFlask-Principal以查看如何将授权添加到a烧瓶应用。