我有一个简单的Flask应用程序,我正在使用它来熟悉flask_httpauth库。我可以通过我的浏览器登录,发出一个GET请求,然后输入用户和密码。我也尝试过使用request对http2lib执行同样的操作,但它总是返回401未经授权的访问。下面是我为flask服务器编写的代码:
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的请求也是如此:
import httplib2
if __name__ == '__main__':
h = httplib2.Http()
h.add_credentials('Tim','1234')
resp = h.request('http://localhost:5000/','GET')
print(resp)提前感谢您的帮助!
发布于 2019-02-28 12:29:04
这是因为在您的服务器上使用的是Digest auth和client Basic。
尝试将其更改为:
from flask_httpauth import HTTPDigestAuth
url = 'http://localhost:5000/'
requests.get(url, auth=HTTPDigestAuth('Time', '1234'))https://stackoverflow.com/questions/54918240
复制相似问题