首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python http2lib身份验证请求登录,返回401

Python http2lib身份验证请求登录,返回401
EN

Stack Overflow用户
提问于 2019-02-28 12:04:17
回答 1查看 101关注 0票数 0

我有一个简单的Flask应用程序,我正在使用它来熟悉flask_httpauth库。我可以通过我的浏览器登录,发出一个GET请求,然后输入用户和密码。我也尝试过使用request对http2lib执行同样的操作,但它总是返回401未经授权的访问。下面是我为flask服务器编写的代码:

代码语言:javascript
复制
from flask import Flask, jsonify, request
from flask_httpauth import HTTPDigestAuth


app = Flask(__name__)
app.config['SECRET_KEY'] = "asasdasd"
auth = HTTPDigestAuth()

users = {
    "Tim":"1234",
    "Susan": "bye"
    }


@app.route('/greeting')
def greeting():
    return "<h1>Welcome to Flask-HTTPAuth’s</h1>"

@app.route('/')
@auth.login_required
def index():
    return "Hello"

@auth.get_password
def get_pw(username):
    if username in users:
        return users.get(username)
    else:
        return None

if __name__ == '__main__':
    app.debug = True
    app.run(host='0.0.0.0', port=5000)

对于返回401的请求也是如此:

代码语言:javascript
复制
import httplib2

if __name__ == '__main__':
    h = httplib2.Http()
    h.add_credentials('Tim','1234')
    resp = h.request('http://localhost:5000/','GET')
    print(resp)

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-02-28 12:29:04

这是因为在您的服务器上使用的是Digest auth和client Basic。

尝试将其更改为:

代码语言:javascript
复制
 from flask_httpauth import HTTPDigestAuth

 url = 'http://localhost:5000/'
 requests.get(url, auth=HTTPDigestAuth('Time', '1234'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54918240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档