2011-08-08 8 views
8

私が開発しているアプリは、多くのajax呼び出しを使用しています。残念ながら、私はapiへのアクセスを制限する方法を研究するときに悩まされました。たとえば:フラスコにRESTapiを固定する

  • 私はボブのみ、ログインしていることを確認する必要がありhttp://site/api/tasks/bob
    へのAJAX呼び出しを行うテーブルを持って、ボブのを見るために要求するかもしれないパターンを知っているテーブル (そうでない場合は誰かを読み取ることができますブラウザにURLを入力するだけで、 タスク)。別のページに
  • 、同じテーブルにはhttp://site/api/tasks/allを呼び出し、すべてのユーザーのタスクを表示できるようにする必要があります(唯一の管理者がいることを行うことができるはず)

は、これを読んでお時間をいただき、ありがとうございますし、多分それに答えるかもしれない。それぞれの要求に

A)HTTP-AUTH(basicまたはdigestのいずれか):

答えて

14

000フィートのビューを使用すると、ユーザーのいずれかとを認証する必要があります。

B)サーバー側のセッション。 (ユーザーはセッションキーを認証して受信します - そのユーザー情報はサーバー上のセッションバックエンドに格納され、そのキーに添付されます)セッションが完了すると、セッションキーを渡して要求をURLまたはクッキー)と、彼らがアクセス権を持っている情報は、彼らに返されます)

フラスコはこの種のものの大部分を扱う便利なextensionsのペアを持っている - 。どのように認証の例を見てFlask-LoginFlask-PrincipalをチェックアウトFlaskアプリケーションに追加することができます。

+0

私は、2番目の方法を実装する方法の詳細を知りたいと思います。 – pocorschi

+0

@InnocentPixel - Flaskには完全にドキュメント化されたセッションAPIが既に組み込まれています。参照:http://flask.pocoo.org/docs/api/#sessions –