flask 增加 Basic Auth

创建日期: 2024-05-21 14:18 | 作者: 风波 | 浏览次数: 14 | 分类: Flask

插件一:Flask-HTTPAuth

参考:https://www.cnblogs.com/minuhy/p/14697821.html 来源:https://pypi.org/project/Flask-HTTPAuth/

安装 Flask-HTTPAuth

pip install Flask-HTTPAuth

指定 url 做 auth

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 and \
            check_password_hash(users.get(username), password):
        return username

@app.route('/')
@auth.login_required
def index():
    return "Hello, %s!" % auth.current_user()

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

Digest authentication example

from flask import Flask
from flask_httpauth import HTTPDigestAuth

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret key here'
auth = HTTPDigestAuth()

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

@auth.get_password
def get_pw(username):
    if username in users:
        return users.get(username)
    return None

@app.route('/')
@auth.login_required
def index():
    return "Hello, %s!" % auth.username()

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

插件二:Flask-BasicAuth

来源:https://blog.csdn.net/mouday/article/details/83150294 参考:https://flask-basicauth.readthedocs.io/en/latest/

安装 Flask-BasicAuth

pip install Flask-BasicAuth

使用方式

# -*- coding: utf-8 -*-

# @Date    : 2018-10-18
# @Author  : Peng Shiyu


from flask import Flask
from flask_basicauth import BasicAuth

app = Flask(__name__)

app.config['BASIC_AUTH_USERNAME'] = 'admin'
app.config['BASIC_AUTH_PASSWORD'] = '123456'

# app.config['BASIC_AUTH_FORCE'] = True  # 整个站点都验证

basic_auth = BasicAuth(app)


@app.route('/')
def index():
    return "hello world"


@app.route('/secret')
@basic_auth.required
def secret():
    return "hello world secret"


if __name__ == '__main__':
    app.run()
14 浏览
0 评论