我目前正在对我的用户进行身份验证。我查看了这个博客 - RESTful Authentication with Flask - 并按照它的步骤生成了一段我认为可以达到我目的的代码。我想将 Timed Json 序列化程序类用于我的特定用例。下面,我将创建该类的对象,生成一个令牌并尝试使用它加载数据。
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))
我收到以下回调:
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:UsersvaibhavAnacondalibsite-packagesitsdangerous.py", line 798, in loads
self, s, salt, return_header=True)
File "C:UsersvaibhavAnacondalibsite-packagesitsdangerous.py", line 752, in loads
self.make_signer(salt, self.algorithm).unsign(want_bytes(s)),
File "C:UsersvaibhavAnacondalibsite-packagesitsdangerous.py", line 377, in unsign
payload=value)
itsdangerous.BadSignature: Signature 'Ch8y6BDMIIBdIGM0lmjdAimINvP3PnUmBpOp-jDW18w' does not match
我刚刚创建了过期一小时的令牌,它给了我一个错误签名,指示令牌不匹配。所需的输出将是:
{"user_id" : "fake1"}
请帮帮我。
我最终不得不卸载并重新安装带有pip
itsdangerous
软件包。使用的语句是:
pip uninstall itsdangerous
其次:
pip install itsdangerous
显然,该文件已以某种方式损坏,导致其无法正常工作。