繁体   English   中英

Quart 的基本身份验证 - python

[英]Basic auth for Quart - python

我正在寻找在 Quart 上使用基本身份验证。 我知道 quart-auth 可用,但它仅支持基于 cookies 的身份验证。 有没有办法使用基本身份验证而无需使用带有 Flask-BasicAuth 的 flask 补丁?

这就是您在 Quart 中执行此操作的方法,(如果您删除asyncawait关键字并将quart更改为flask它也适用于 Flask)。

from functools import wraps
from secrets import compare_digest

from quart import abort, current_app

def auth_required(func):

    @wraps(func)
    async def wrapper(*args, **kwargs):
        auth = request.authorization
        if (
            auth is not None and 
            auth.type == "basic" and
            auth.username == current_app.config["BASIC_AUTH_USERNAME"] and
            compare_digest(auth.password, current_app.config["BASIC_AUTH_PASSWORD"])
        ):
            return await func(*args, **kwargs)
        else:
            abort(401)

    return wrapper

# Usage

@auth_required
@app.route("/")
async def index():
     return ""

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM