gpt4 book ai didi

python - Flask-HTTPAuth verify_password 函数未收到用户名或密码

转载 作者:太空狗 更新时间:2023-10-30 02:19:32 26 4
gpt4 key购买 nike

当我尝试使用 @auth.login_required 装饰器访问路由时,系统会提示我输入用户名和密码的窗口。输入此信息后,verify_password 函数的参数username_or_tokenpassword''。为什么数据是空的?

@auth.verify_password
def verify_password(username_or_token, password):
# first try to authenticate by token
user = USER.verify_auth_token(username_or_token)
logger.debug("user = %r", user)
logger.debug("Entered USEREMAIL = %r" , username_or_token)
logger.debug("entered password = %r" , password)

if not user:
# try to authenticate with username/password
user = session.query(USER).filter_by(USEREMAIL=username_or_token).first()
if not user or not user.verify_password(password):
return False
g.user = user
return True

更新

我已将代码简化为:

@auth.verify_password
def verify_password(username, password):
logger.debug("username = %s" % username)
logger.debug("password = %s" % password)
return true


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

我正在使用 Advanced Rest Client 测试此功能。

http://localhost:8081/myapp/api/token

我还附加了一个 Authorization header 。

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Authorization: Basic YXNkOmFzZA==
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.6,zh-TW;q=0.4

这导致输出:

你好,!

日志文件:

username = 
password =

我也再也不会被提示输入我的安全凭证

另一个奇怪的是,即使我在 verify_password 中将 return 更改为 false,我仍然得到相同的输出:Hello, !

最佳答案

我经历过类似的OP。如果您使用 mod_wsgi 运行,请确保将 WSGIPassAuthorization On 设置为 documented here .

关于python - Flask-HTTPAuth verify_password 函数未收到用户名或密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com