2011-08-08 63 views
8

我正在使用的應用程序使用了大量的ajax調用。不幸的是,在研究如何限制對api的訪問時,我遇到了一些障礙。例如:保護瓶中的RESTapi

  • 我有表,做一個AJAX調用http://site/api/tasks/bob
    我需要確保只有Bob,登錄,可以讀取表 (否則別人誰知道格局可能會要求查看Bob的只需在瀏覽器中輸入url即可完成 任務)。
  • 不同的頁面上
  • ,同樣的表需要能夠調用http://site/api/tasks/all並顯示所有用戶的任務(僅管理員應該能夠做到這一點)

謝謝你的時間讀這篇文章,也許回答。

回答

14

的千英尺的視圖是你需要驗證用戶要麼:對每個請求

A)HTTP-AUTH(或者basicdigest)。 B)服務器端會話。 (用戶驗證並接收會話密鑰 - 他們的用戶信息存儲在服務器上的會話後端,附加到該密鑰一旦他們有會話,他們可以讓請求將會話密鑰傳回給您(在URL中或在一個cookie),他們可以訪問的信息返回給他們)

瓶有一對有用的extensions,隨着這樣的事情有很大一部分處理 - 退房Flask-LoginFlask-Principal怎麼看授權的例子可以添加到Flask應用程序中。

+0

我很想找到更多關於如何實現第二個的信息。 – pocorschi

+0

@InnocentPixel - Flask有一個完全記錄的會話API已經內置。請參閱:http://flask.pocoo.org/docs/api/#sessions –