2

ログインしたユーザーのみが RESTfull API にアクセスできるようにしたい。私はずっと検索してきましたが、それを行う方法を教えてくれる情報源を見つけることができませんでした。奇妙なことに、データを保護することは非常に一般的だと思います。

とでFlaskプロジェクトを使用しています。クラスを介してデータを CRUDし、MySQL データベースにアクセスします。次のような RESTfull API を作成します。Flask-loginflask-RestlessSQL-alchemy

api_manager = APIManager(app, flask_sqlalchemy_db=db)
api_manager.create_api(Items, methods=['GET', 'POST', 'DELETE', 'PUT'])

ログインしていないユーザーの RESTfull API へのアクセスを制限するにはどうすればよいですか? そうでない場合、何を使用する必要がありますか?

私はいくつかのテクニックを試しているので、あらゆる方向の提案を歓迎します!

前もって感謝します


もう少し遊んだ後、解決策を見つけました。これは最善ではないかもしれませんが、あまり多くのコードを使わずにトリックを実行します:

@app.before_request
def before_request():
    if ('/api/' in str(request.url_rule)) && (not current_user.is_authenticated()):
        return redirect('/login')

これは正しい方法ですか?プリプロセッサの追加は、考えられるすべての HTTP リクエストに対して大量のコードです。https://flask-restless.readthedocs.org/en/latest/customizing.html#request-preprocessors-and-postprocessors

4

1 に答える 1