Flask Basic Auth 账号密码验证

文章目录

    用 Python 的 Flask 框架,写了几个测试用的网页,需要放到公网服务器上。
    但是为了防止被搜索引擎爬虫收录,所以需要加上 Basic Auth 账号密码验证。类似 使用 Nginx htpasswd 限制页面访问权限 的做法,但是可以省去 Nginx 的配置。

    界面效果

    Flask Basic Auth

    安装依赖

    pip install Flask-HTTPAuth
    

    代码

    from flask_httpauth import HTTPBasicAuth
    from werkzeug.security import generate_password_hash, check_password_hash
    
    basicAuth = HTTPBasicAuth()
    users = {
        "test": generate_password_hash("test"),
    }
    
    @basicAuth.verify_password
    def verify_password(username, password):
        if username in users and check_password_hash(users.get(username), password):
            return username
    
    @app.route("/hello")
    @basicAuth.login_required
    def hello_test():
        return render_template("index.html")
    

    还是麻烦了一点

    对比 golang gin.BasicAuth 为生产环境 Swagger UI 文档加上密码保护,Flask 的设置还是麻烦了一点。不如 gin 方便简洁,而且不用安装依赖。

    参考

    https://www.educba.com/flask-authentication/

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式