これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド Flask-httpauth です。
プログラム:
NAME
フラスコ-httpauth - Flask-HTTPAuth ドキュメント
Flask-HTTPAuth 基本およびダイジェスト HTTP 認証を提供する単純な拡張機能です。
Flask ルートの場合。
BASIC 認証 実施例
次のアプリケーション例では、HTTP 基本認証を使用してルートを保護しています 「/」:
フラスコインポートフラスコから
フラスコから.ext.httpauthインポートHTTPBasicAuth
app = Flask(__ name__)
認証 = HTTPBasicAuth()
ユーザー = {
"ジョン": "こんにちは",
"スーザン": "さようなら"
}
@auth.get_password
def get_pw (ユーザー名):
ユーザーのユーザー名の場合:
users.get(ユーザー名) を返す
返却なし
@app.route('/')
@auth.login_required
def インデックス():
「こんにちは、%s!」を返します。 % auth.username()
__name__ == '__main__'の場合:
app.run()
パスワードを取得 コールバックは、指定されたユーザー名に関連付けられたパスワードを返す必要があります
引数として。 Flask-HTTPAuth は、次の場合にのみアクセスを許可します get_password(ユーザー名) == password.
パスワードがユーザー データベースにハッシュ化されて格納されている場合、追加のコールバックが
必要:
@auth.hash_password
def hash_pw(パスワード):
md5(パスワード).hexdigest()を返す
時 ハッシュパスワード コールバックが提供されると、アクセスが許可されます
get_password(ユーザー名) == hash_password(パスワード).
ハッシュ アルゴリズムでユーザー名を知る必要がある場合、コールバックには XNUMX つの値が必要です。
XNUMX つではなく引数:
@auth.hash_password
def hash_pw (ユーザー名、パスワード):
get_salt(ユーザー名)
ハッシュを返す (パスワード、ソルト)
最大限の柔軟性を得るには、 パスワードを取得 および ハッシュパスワード コールバックは
交換された パスワードを照合します:
@auth.verify_password
def verify_pw (ユーザー名、パスワード):
return call_custom_verify_function(ユーザー名、パスワード)
ダイジェスト 認証 実施例
次の例は前のものと似ていますが、HTTP ダイジェスト認証は
中古:
フラスコインポートフラスコから
フラスコから.ext.httpauthインポートHTTPDigestAuth
app = Flask(__ name__)
app.config['SECRET_KEY'] = 'ここに秘密鍵'
認証 = HTTPDigestAuth()
ユーザー = {
"ジョン": "こんにちは",
"スーザン": "さようなら"
}
@auth.get_password
def get_pw (ユーザー名):
ユーザーのユーザー名の場合:
users.get(ユーザー名) を返す
返却なし
@app.route('/')
@auth.login_required
def インデックス():
「こんにちは、%s!」を返します。 % auth.username()
__name__ == '__main__'の場合:
app.run()
ダイジェスト認証はデータを Flask の セッション オブジェクト
構成には SECRET_KEY 設定します。
API マニュアル
class フラスコ_httpauth.HTTPBasicAuth
Flask ルートの HTTP 基本認証を処理するこのクラス。
get_password(パスワード_コールバック)
このコールバック関数は、フレームワークによって呼び出され、
特定のユーザーのパスワード。 例:
@auth.get_password
def get_password (ユーザー名):
return db.get_user_password(ユーザー名)
ハッシュパスワード(ハッシュパスワードコールバック)
定義されている場合、このコールバック関数はフレームワークによって呼び出されて適用されます
クライアントから提供されたパスワードへのカスタム ハッシュ アルゴリズム。 これなら
コールバックが提供されていない場合、パスワードは変更されずにチェックされます。 コールバック
XNUMX つまたは XNUMX つの引数を取ることができます。 引数が XNUMX つのバージョンは、
ハッシュするパスワード、XNUMX つの引数のバージョンはユーザー名と
この順番でパスワード。 単一引数のコールバックの例:
@auth.hash_password
def hash_password(パスワード):
md5(パスワード).hexdigest()を返す
XNUMX つの引数のコールバックの例:
@auth.hash_password
def hash_pw (ユーザー名、パスワード):
get_salt(ユーザー名)
ハッシュを返す (パスワード、ソルト)
verify_password(verify_password_callback)
定義されている場合、このコールバック関数はフレームワークによって呼び出されて検証されます
クライアントから提供されたユーザー名とパスワードの組み合わせが有効であること。
コールバック関数は、ユーザー名とパスワードの XNUMX つの引数を取り、
戻る必要があります ◯ or ×。 使用例:
@auth.verify_password
def verify_password (ユーザー名、パスワード):
ユーザー = User.query.filter_by(ユーザー名).first()
ユーザーでない場合:
Falseを返す
passlib.hash.sha256_crypt.verify(パスワード, user.password_hash) を返す
次の場合に注意してください。 パスワードを照合します コールバックが提供されます パスワードを取得 および
ハッシュパスワード コールバックは使用されません。
エラーハンドラー(エラーコールバック)
定義されている場合、このコールバック関数はフレームワークによって呼び出されます。
認証エラーをクライアントに送り返すために必要です。 リターン
この関数からの値は、文字列としての応答の本文にすることも、
で作成された応答オブジェクトにすることもできます メイク_レスポンス. このコールバックの場合
デフォルトのエラー応答が生成されます。 例:
@auth.error_handler
def auth_error():
「<h1>アクセス拒否</h1>」を返す
login_required(view_function_callback)
このコールバック関数は、認証が成功したときに呼び出されます。 これ
通常、Flask ビュー関数になります。 例:
@app.route('/private')
@auth.login_required
def private_page():
return 「権限のある人のみ!」
ユーザー名()
このクラスで保護されているビュー関数は、ログにアクセスできます
この方法でユーザー名。 例:
@app.route('/')
@auth.login_required
def インデックス():
「こんにちは、%s!」を返します。 % auth.username()
class フラスコ.ext.httpauth.HTTPDigestAuth
Flask ルートの HTTP ダイジェスト認証を処理するこのクラス。 の SECRET_KEY
セッションが機能するようにするには、Flask アプリケーションで構成を設定する必要があります。
デフォルトでは、Flask はユーザー セッションを安全な Cookie としてクライアントに保存するため、
クライアントは Cookie を処理できる必要があります。 Web ブラウザーではないクライアントをサポートするには
または、Cookie を処理できない セッション インタフェース セッションを書き込みます
サーバーを使用する必要があります。
get_password(パスワード_コールバック)
ドキュメントと例については、基本認証を参照してください。
エラーハンドラー(エラーコールバック)
ドキュメントと例については、基本認証を参照してください。
login_required(view_function_callback)
ドキュメントと例については、基本認証を参照してください。
ユーザー名()
ドキュメントと例については、基本認証を参照してください。
onworks.net サービスを使用してオンラインでフラスコ httpauth を使用する