2017-03-25 5 views
0

このプログラムで@ auth.verify_passwordデコレータがいつ、どのように使用されるのかを理解したい。 私がルートhttp://127.0.0.1:5000に移動すると、ユーザー名とパスワードを渡す必要があり、@ auth.login_requiredがそれを確認するが、@ auth.verify_passwordはどこに入っているのだろうと私は理解していますか?Flask-HTTPAuthのデコレータを理解する

@ auth.login_requiredはそれを呼び出しますか? the documentationから

#!/usr/bin/env python 
from flask import Flask 
from flask_httpauth import HTTPBasicAuth 
from werkzeug.security import generate_password_hash, check_password_hash 

app = Flask(__name__) 
auth = HTTPBasicAuth() 

users = { 
    "john": generate_password_hash("hello"), 
    "susan": generate_password_hash("bye") 
} 


@auth.verify_password 
def verify_password(username, password): 
    if username in users: 
     return check_password_hash(users.get(username), password) 
    return False 


@app.route('/') 
@auth.login_required 
def index(): 
    return "Hello, %s!" % auth.username() 


if __name__ == '__main__': 
    app.run() 

答えて

0

:(verify_password_callback)

定義されている場合、このコールバック 関数は、ユーザ名 とパスワードの組み合わせがが提供することを確認するために、フレームワークによって呼び出されます

verify_passwordクライアントは有効です。 コールバック関数は、ユーザー名とパスワードの2つの引数をとります。 とTrueまたはFalseを返す必要があります。

基本的には、プログラムがユーザーから提供された資格情報を確認できるように機能を提供します。

login_requiredデコレータは、ユーザーから提供された認証資格情報を読み取り、確認するために関数verify_passwordに渡すことで、ルートを保護します。

関連する問題