flask_httpauth verify_password回调 无法获取到 email 和 password

刚学python, 下面的代码是按照 Flask Web 开发中的例子来写的,但是我请求不到token,在verify_password这里email_or_token 一直是空

我直接贴代码

http_auth = HTTPBasicAuth('Bearer')

@http_auth.verify_password
def verify_password(email_or_token, password):
    print(email_or_token, file=sys.stderr)
    if email_or_token == '':
        return False
    if password == '':
        g.current_user = User.verify_auth_token(email_or_token)
        g.token_used = True
        return g.current_user is not None

    user = User.query.filter_by(email = email_or_token).first()
    if not user:
        return False
    g.current_user = user
    g.token_used = False
    return user.verify_password(password)
    
@api.route('/token')
@http_auth.login_required
def get_token():
    if g.current_user.is_anonymous or g.token_used:
        return unauthorized('Invalid credentials')
    return jsonify({'token': g.current_user.generate_auth_token(
        expiration=3600), 'expiration': 3600})

我用 postman 发下面的请求:
http://127.0.0.1:5000/v1.0/to...
一直是返回401,abc 是一个已经存在的账户,print 打印的是''
不知道是哪里出了问题

阅读 4.5k
1 个回答

要发这样的请求:

http://abc@qq.com:123456@127.0.0.1:5000/v1.0/token

如果是用token登录就换成

http://token:@127.0.0.1:5000/v1.0/token
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题