ホームページ  >  記事  >  バックエンド開発  >  Flask-RESTful と Flask-HTTPAuth: Python Web アプリケーションでのユーザー認証と認可のベスト プラクティス

Flask-RESTful と Flask-HTTPAuth: Python Web アプリケーションでのユーザー認証と認可のベスト プラクティス

WBOY
WBOYオリジナル
2023-06-17 17:12:541739ブラウズ

Web アプリケーションの普及に伴い、ユーザーの認証と認可がますます重要になってきています。これらの機能は、Web アプリケーションの機密データと重要な機能を保護し、許可されたユーザーのみがそれらにアクセスできるようにします。 Python 言語は、Web アプリケーションでのユーザー認証と認可の実装を容易にする多くのライブラリとフレームワークを提供します。この記事では、Web アプリケーションに認証と認可を実装するためのベスト プラクティスである、Flask-RESTful と Flask-HTTPAuth という 2 つの Python ライブラリを紹介します。

  1. Flask-RESTful とは何ですか?
    Flask-RESTful は、Flask フレームワークをベースにした RESTful ライブラリであり、RESTful API を簡単に作成できます。 Flask、Werkzeug、Jinja2 上に構築されており、軽量の RESTful フレームワークと Flask と完全に連携するシンプルなルーティング システムを提供し、開発者が RESTful API を迅速に作成できるようにします。
  2. Flask-HTTPAuth とは何ですか?
    Flask-HTTPAuth は、Flask Web アプリケーションにユーザー認証と認可を提供するライブラリであり、HTTP 基本認証、Cookie、トークン、またはその他のカスタム メソッドを通じて認証できます。 Flask-HTTPAuth は追加のデータベースを必要とせず、ユーザー認証情報をアプリケーションの構成ファイルに保存します。これにより、認証プロセスがより簡単かつ便利になります。
  3. Flask-RESTful と Flask-HTTPAuth を使用して認証と認可を実装する
    Flask-RESTful と Flask-HTTPAuth を使用して認証と認可を実装する前に、アプリケーションにいくつかの設定を行う必要があります。まず、Flask、Flask-RESTful、および Flask-HTTPAuth ライブラリをインストールする必要があります:
pip install Flask
pip install Flask-RESTful
pip install Flask-HTTPAuth

次に、Flask-RESTful と Flask-HTTPAuth を Flask アプリケーションにインポートする必要があります:

from flask import Flask
from flask_restful import Api, Resource
from flask_httpauth import HTTPBasicAuth

app = Flask(__name__)
api = Api(app)
auth = HTTPBasicAuth()

次に、認証用の登録ユーザーを作成できます。

users = {
    "john": "hello",
    "susan": "bye"
}

@auth.get_password
def get_password(username):
    if username in users:
        return users.get(username)
    return None

単純なユーザー辞書 (ユーザー名とパスワード) がここで定義され、get_password コールバック関数を通じて Flask-HTTPAuth に渡されます。 get_password 関数では、まずリクエスト内のユーザー名がユーザー辞書にあるかどうかを確認します。存在する場合はユーザーのパスワードが返され、存在しない場合は認証が失敗したことを示す None が返されます。

Flask-RESTful と Flask-HTTPAuth をアプリケーションに適用して、API への認証と認可を実装できるようになりました。以下に例を示します。

class PrivateResource(Resource):
    @auth.login_required
    def get(self):
        return {"message": "Hello, %s!" % auth.username()}, 200

api.add_resource(PrivateResource, '/private')

上記のコードでは、認証に Flask-HTTPAuth の login_required デコレータを使用して、保護されたリソース PrivateResource が作成されます。リクエスト内のユーザー名とパスワードが一致する場合、get メソッドを呼び出すと、ユーザー名を含む JSON オブジェクトが返されます。

ルートを作成した後、Flask アプリケーションを実行し、ユーザー名とパスワードを使用して認証できます:

$ curl -u john:hello http://localhost:5000/private
{"message": "Hello, john!"}

$ curl -u susan:bye http://localhost:5000/private
{"message": "Hello, susan!"}
  1. 概要
    この記事では、Flask-RESTful の使用方法を紹介しました。 Flask-HTTPAuth ライブラリは、Python Web アプリケーションで認証と認可を実装します。 Python ライブラリを設定し、上記のコード例を使用することで、Web アプリケーションの機密データと重要な機能を保護し、許可されたユーザーのみがアクセスできるようにすることができます。 Python は強力で、学びやすく、使いやすい言語で、データ サイエンスや Web プログラム開発などの分野で非常に人気があり、そのエコシステムも非常に充実しており、開発をより簡単かつ迅速に行うための多くのライブラリとフレームワークが提供されています。

以上がFlask-RESTful と Flask-HTTPAuth: Python Web アプリケーションでのユーザー認証と認可のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。