了解 Flask-HTTPAuth 上的装饰器



我想了解如何以及何时在此程序上使用@auth.verify_password decorator。如果我导航到路由 http://127.0.0.1:5000,我知道我需要传入用户名和密码,@auth.login_required 将对其进行验证,但是 @auth.verify_password 从何而来?

@auth.login_required会调用它吗?

#!/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()

从文档中:

verify_password(verify_password_callback(

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

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

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

相关内容

  • 没有找到相关文章

最新更新