我在 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 响应并停止应用程序,但应用程序不向用户返回任何内容,应用程序在未经授权的情况下开始工作。
我怎样才能解决这个问题?
提前致谢。