Flask-Restless を使用して、非常にシンプルな REST API を作成しています。認証を追加したいのですが、get/post/delete 呼び出しのみを行い、get 呼び出しは公開したままにします。
これまでのところ、views.py ファイルに次のように記述しました。
manager = flask.ext.restless.APIManager(app, flask_sqlalchemy_db=db)
manager.create_api(models.mymodel, methods=['GET', 'POST', 'DELETE'])
認証のためのさまざまなソリューションを調べましたが、それらはすべて「大きすぎる」ように見えます。PUT/POST/DELETE 呼び出しを実行できるユーザーを 1 人だけ設定し、「パブリック」ユーザーは GET のみを使用します。
簡単な方法は次のようにする必要があると思います。
- get 呼び出しを行うパブリック ユーザー: 現在のように API 応答を返します。
- put/post/delete 呼び出しを行うパブリック ユーザー: 「許可されていません」という応答を返します。
- get/put/post/delete 呼び出しを行う登録ユーザー: 登録されているかどうかを確認し、適切な応答を返します。
「チェック」は、秘密鍵をconfig.py
ファイルに保存し、それを API 呼び出しのヘッダーの属性と比較するようなものであってはなりませんか? いくつかのチュートリアルで見たように、ユーザー用のテーブル全体を作成し、それでusernames+password
API トークンを生成するのは「大きすぎる」ため、ここでは不要だと思います。重要なのは'secret-key' : mysecretkey
、ヘッダーにいくつか入れることができるということです。何か不足していますか?
ありがとう!