Web アプリケーションの普及に伴い、ユーザーの認証と認可がますます重要になってきています。これらの機能は、Web アプリケーションの機密データと重要な機能を保護し、許可されたユーザーのみがそれらにアクセスできるようにします。 Python 言語は、Web アプリケーションでのユーザー認証と認可の実装を容易にする多くのライブラリとフレームワークを提供します。この記事では、Web アプリケーションに認証と認可を実装するためのベスト プラクティスである、Flask-RESTful と Flask-HTTPAuth という 2 つの Python ライブラリを紹介します。
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!"}
以上がFlask-RESTful と Flask-HTTPAuth: Python Web アプリケーションでのユーザー認証と認可のベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。