Python http2lib запрос аутентификации, вход в систему возвращается 401 - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть простое приложение Flask, которое я использую для знакомства с библиотекой flask_httpauth.Я могу войти через мой браузер, выдав запрос GET, а затем введя пользователя и пароль.Я пытался сделать то же самое с http2lib, используя request, но он всегда возвращает 401 несанкционированный доступ.Ниже приведен мой код для флеш-сервера:

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)

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 28 февраля 2019

Это потому, что на вашем сервере вы используете Digest auth и ваш клиент Basic.

Попробуйте изменить его на:

 from flask_httpauth import HTTPDigestAuth

 url = 'http://localhost:5000/'
 requests.get(url, auth=HTTPDigestAuth('Time', '1234'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...