了解Flask HTTPAuth上的装饰器

了解Flask HTTPAuth上的装饰器,flask,flask-httpauth,Flask,Flask Httpauth,我想了解@auth.verify_password decorator是如何以及何时在这个程序上使用的。 如果我导航到route,我知道我需要输入用户名和密码,@auth.login\u required将对其进行验证,但是@auth.verify\u密码从何而来 @auth.login\u需要调用它吗 #!/usr/bin/env python from flask import Flask from flask_httpauth import HTTPBasicAuth from werkz

我想了解@auth.verify_password decorator是如何以及何时在这个程序上使用的。 如果我导航到route,我知道我需要输入用户名和密码,@auth.login\u required将对其进行验证,但是@auth.verify\u密码从何而来

@auth.login\u需要调用它吗

#!/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()
发件人:

验证密码验证密码回调

如果已定义,则此回调 函数将由框架调用,以验证用户名 客户端提供的密码和密码组合有效。这个 回调函数接受两个参数,用户名和密码 并且必须返回True或False

因此,您基本上提供了该函数,以便您的程序能够验证用户提供的凭据

login_required decorator通过读取用户提供的身份验证凭据并将其传递给要验证的verify_password函数来保护路由