2016-07-11 14 views
0

Ich arbeite derzeit an der Authentifizierung meiner Benutzer. Ich habe diesen Blog ausgecheckt - RESTful Authentication with Flask - und bin seinen Schritten gefolgt, um ein Stück Code zu produzieren, von dem ich glaubte, dass es meinem Zweck dienen würde. Ich wollte die Timed Json Serializer-Klasse für meinen speziellen Anwendungsfall verwenden. Im Folgenden erstelle ich ein Objekt dieser Klasse, erzeuge ein Token und versuche, die Daten damit zu laden.Fehler beim Laden von JSON aus itsdangerous Datei TimedJSONSerializer Token

from itsdangerous import TimedJSONWebSignatureSerializer 
user_id = 'fake1' 
s = TimedJSONWebSignatureSerializer(parser_app.config['SECRET_KEY'], expires_in=3600) 
token = s.dumps({'user_id' : user_id}) 
print(token) 
print (s.loads(token)) 

bekomme ich folgenden Rückruf:

Traceback (most recent call last): 
eyJhbGciOiJIUzI1NiIsImV4cCI6MTQ2ODI3MjU3MSwiaWF0IjoxNDY4MjY4OTcxfQ.eyJ1c2VyX2lkIjoiZmFrZTEifQ.Ch8y6BDMIIBdIGM0lmjdAimINvP3PnUmBpOp-jDW18w 
    File "C:/Users/vaibhav/PycharmProjects/Coding/Coding.py", line 6, in <module> 
    print (s.loads(token)) 
    File "C:\Users\vaibhav\Anaconda\lib\site-packages\itsdangerous.py", line 798, in loads 
    self, s, salt, return_header=True) 
    File "C:\Users\vaibhav\Anaconda\lib\site-packages\itsdangerous.py", line 752, in loads 
    self.make_signer(salt, self.algorithm).unsign(want_bytes(s)), 
    File "C:\Users\vaibhav\Anaconda\lib\site-packages\itsdangerous.py", line 377, in unsign 
    payload=value) 
itsdangerous.BadSignature: Signature 'Ch8y6BDMIIBdIGM0lmjdAimINvP3PnUmBpOp-jDW18w' does not match 

Ich habe gerade das Token mit einem Ablauf einer Stunde erstellt und es gibt mir einen BadSignature, das anzeigt, dass das Token nicht übereinstimmt. Die gewünschte Ausgabe wäre:

{"user_id" : "fake1"} 

Bitte helfen Sie mir.

Antwort

0

Ich musste schließlich das Paket itsdangerous mit pip deinstallieren und neu installieren. Die Aussagen waren:

pip uninstall itsdangerous 

gefolgt von:

pip install itsdangerous 

Offenbar ist die Datei irgendwie beschädigt worden war, so dass es nicht richtig funktioniert.