2

我在 Flask 中实现了基本授权。(参考这个片段)它工作得非常好。

def check_auth(username):
    user_id = get_user_id(username)
    return user_id is not None

def authenticate():
    """Sends a 401 response that enables basic auth"""
     return Response(
        'Could not verify your access level for that URL.¥n'
        'You have to login with proper credentials',
        status=401,
        headers={'WWW-Authenticate': 'Basic realm="Test"'}
        )

def requires_auth(f):
    """Basic authorization decorator
    """
    @wraps(f)
    def decorated(*args, **kwargs):
        auth = request.authorization
        if not auth or not check_auth(auth.username):
            return authenticate()
        return f(*args, **kwargs)
    return decorated

问题是,当通过 Javascript 访问应用程序时(例如,通过 JS 发送消息的用户名和密码),这种基本授权不起作用。
如果授权失败,应用程序应该向用户返回 401 响应并停止应用程序,但应用程序不向用户返回任何内容,应用程序在未经授权的情况下开始工作。
我怎样才能解决这个问题?

提前致谢。

4

0 回答 0