Ich versuche, Problem mit Basic-Authentifizierung in Kolben mit HTTPBasicAuth zu lösen.Flask HTTPBasicAuth kein Token in Header
Wenn ich mithilfe von Curl oder Webbrowser zugreifen, funktioniert alles gut. Dies sind Beispiele, die funktionieren:
curl -u [access_token]:unused -i X GET http://127.0.0.1:5000/api/v1/token
oder
http://[access_token]:[email protected]:5000/api/v1/token
Aber wenn ich Authorization: Basic [token]
oder Authorization: Basic [token]:unused
in Header der Anfrage mit mir 500 Fehlern vom Server.
Überprüfen der Zugriffstoken oder E-Mail und Passwort:
@auth.verify_password
def verify_password(email_or_token, password):
user = User.verify_auth_token(email_or_token)
if not user:
user = User.query.filter_by(email = email_or_token).first()
if not user or not user.verify_password(password):
return False
g.user = user
return True
User-Modell:
class User(db.Model):
def generate_auth_token(self, expiration = 600):
s = Serializer(app.config['SECRET_KEY'], expires_in = expiration)
return s.dumps({ 'id': self.id })
@staticmethod
def verify_auth_token(token):
s = Serializer(app.config['SECRET_KEY'])
try:
data = s.loads(token)
except SignatureExpired:
return None # valid token, but expired
except BadSignature:
return None # invalid token
user = User.query.get(data['id'])
return user
ich fand, als ich Token oder E-Mail und Passwort bin mit im Header als Basic [token/email]:[password/unused]
, email_or_token
und password
Eigenschaften sind None
.
Error:
TypeError: argument of type 'NoneType' is not iterable
Warum treten Fehler bei der Verwendung von Authorization: Basic [token/email]:[password/unused]
in Header der Anfrage? Was ist die Lösung dafür?