Ich versuche, Basic Auth auf meiner Flask-Anwendung mit der Flask-Login-Erweiterung zu implementieren. Nach der Dokumentation habe ich einen Beispiel Request Loader versucht, aber es gibt mir einen 401 Unauthorized Fehler, während der bald zu veraltende Header_loader einwandfrei funktioniert, also mache ich etwas falsch oder gibt es einen Fehler im request_loader.Flask-Login request_loader funktioniert nicht?
Ich benutze das folgende request_loader:
login_manager = LoginManager(app)
@login_manager.request_loader
def load_user_from_request(req):
print req.headers # just to see what happens
user = models.Werknemer.query.first() #this user exists, so it always returns a user
return user
Meine geschützten Ansicht:
@app.route("/test")
@login_required
def index():
return 'OK'
Und mein Anforderungscode:
import requests
from requests.auth import HTTPBasicAuth
test_req = requests.get('http://localhost:5000/test', auth=HTTPBasicAuth('test', 'test'))
print test_req.content
, wenn ich meine Anfrage Code ausführen es zurückgibt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>401 Unauthorized</title>
<h1>Unauthorized</h1>
<p>The server could not verify that you are authorized to access the URL requested. You either supplied the wrong credentials (e.g. a bad password), or your browser doesn't understand how to supply the credentials required.</p>
Wenn ich den Auth-Teil meiner Anfrage weglasse, wird meine geschützte Ansicht zurückgegeben. Warum akzeptiert flask den Basic-Auth-Header nicht?