欢迎访问宙启技术站
智能推送

Flask-HTTPAuth:轻松添加基于HTTP的身份验证到您的Flask应用中

发布时间:2024-01-14 15:41:18

Flask-HTTPAuth是一个Python库,它可以轻松地将基于HTTP的身份验证添加到您的Flask应用程序中。它提供了一个装饰器来保护您的视图函数,只允许经过身份验证的用户访问。下面是一个使用Flask-HTTPAuth的示例:

1. 安装Flask-HTTPAuth:

您可以使用pip命令来安装Flask-HTTPAuth:

$ pip install Flask-HTTPAuth

2. 导入Flask和Flask-HTTPAuth:

在您的Flask应用程序中,导入Flask和Flask-HTTPAuth:

from flask import Flask
from flask_httpauth import HTTPBasicAuth

3. 创建Flask应用程序和HTTPAuth对象:

创建一个Flask应用程序实例和一个HTTPAuth对象:

app = Flask(__name__)
auth = HTTPBasicAuth()

4. 定义身份验证函数:

使用@auth.verify_password装饰器,您可以定义一个函数来验证用户的凭据。在这个例子中,我们将用户名和密码存储在一个字典中,用于验证用户输入的凭据:

users = {
    "john": "hello",
    "susan": "bye"
}

@auth.verify_password
def verify_password(username, password):
    if username in users and users[username] == password:
        return username

5. 在视图函数上应用身份验证:

使用@auth.login_required装饰器,您可以轻松地将身份验证应用于视图函数。只有经过身份验证的用户才能访问这些视图函数:

@app.route('/')
@auth.login_required
def index():
    return "Hello, {}!".format(auth.current_user())

6. 运行Flask应用程序:

在应用程序的底部,添加以下代码来运行Flask应用程序:

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

现在,当用户访问您的应用程序时,他们将被要求输入用户名和密码。如果他们提供了正确的凭据,他们将被允许访问受保护的视图函数。

这只是Flask-HTTPAuth的基本用法,它还提供了其他功能,如基于令牌的身份验证和多种身份验证方法。您可以查阅Flask-HTTPAuth官方文档,以获取更多具体用法和选项。