Слияние репозиториев теряет историю файлов на Bitbucket

Werkzeug анализирует заголовок Authorization на request.authorization, который является объектом Authorization .

Из соображений безопасности браузер может отправлять этот заголовок только в том случае, если он сначала получил ответ об ошибке 401 с набором заголовков WWW-Authenticate. Другой клиент, такой как библиотека запросов, отправит заголовок напрямую.

Простейшей демонстрацией этого является декоратор, который проверяет request.authorization и возвращает ответ 401, если он не установлен, или если учетные данные были недействительными. На практике вам необходимо использовать расширение, например Flask-Login или Flask-HTTPAuth .

from functools import wraps
from flask import request

def login_required(f):
    @wraps(f)
    def wrapped_view(**kwargs):
        auth = request.authorization
        if not (auth and check_auth(auth.username, auth.password)):
            return ('Unauthorized', 401, {
                'WWW-Authenticate': 'WWW-Authenticate': 'Basic realm="Login Required"'
            })

        return f(**kwargs)

    return wrapped_view

@app.route('/secret')
@login_required
def secret():
    return f'Logged in as {request.authorization.username}.'
import requests
response = requests.get('http://127.0.0.1:5000/secret', auth=('world', 'hello'))
print(response.text)
# Logged in as world.

0
задан Pointo Senshi 16 January 2019 в 18:07
поделиться