2017-03-25 10 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 클라이언트가 유효합니다. 콜백 함수는 두 개의 인수, 즉 사용자 이름과 암호 을 취하며 True 또는 False를 반환해야합니다.

기본적으로 프로그램은 사용자가 제공 한 자격 증명을 확인할 수 있도록 기능을 제공합니다.

장식자는 login_required 사용자가 제공 한 인증 자격증 명을 읽고 확인을 위해 verify_password 함수에 전달하여 경로를 보호합니다.