Basic HTTP Authentication в Flask не работает
Я делаю Flask приложение и мне нужна HTTP Basic Authentication, а она у меня не работает
Я делаю это, как в примере
Как мне исправить данную проблему?
Импортированные библиотеки
from flask import Flask, render_template, render_template_string, request
import json
Фрагмент кода с авторизацией
@app.route('/user/<string:name>')
def user(name):
request.authorization.username
request.authorization.password
with open('json/users.json', 'rt', encoding='utf8') as f:
x = f.read()
data = json.loads(x)
user = data[name]
return render_template('about_user.html',
_name=user['name'],
_age=user['age'],
_discord=user['discord']
)
Сама ошибка
AttributeError: 'NoneType' object has no attribute 'username'
Ответы (1 шт):
Автор решения: KvaksMan play
→ Ссылка
Тебе нужно проверить, если ли request.authorization и сделать возвращение make_response
Правильный код:
@app.route('/user/<string:name>')
def user(name):
if request.authorization:
request.authorization.username
request.authorization.password
with open('json/users.json', 'rt', encoding='utf8') as f:
x = f.read()
data = json.loads(x)
user = data[name]
return render_template('about_user.html',
_name=user['name'],
_age=user['age'],
_discord=user['discord']
)
else:
return make_response('Could not verify!', 401, {'WWW-Authenticate' : 'Basic realm="Login Required"'})