我在PyJWT中做了一个token,像这样:
import jwt
import datetime
payload = {
"id": 1,
"exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=1000),
"iat": datetime.datetime.utcnow()
}
token = jwt.encode(payload, 'secret', algorithm='HS256')
字符串
然后发送到前端,并像这样检索我的有效载荷:
payload = jwt.decode(token, 'secret', algorithms=['HS256'])
型
现在我想销毁服务器中的令牌并注销。怎么办?
2条答案
按热度按时间a0x5cqrl1#
所以我找到了解决办法。*JWT令牌不可销毁 *。最好的方法是在数据库中创建一个表,比如blacklist,然后在调用logout**方法时添加死令牌。
然后,当尝试检查用户令牌验证时,只需检查该表,如果令牌存在,则不应接受user和
return User Not Authenticated
。成功
qnyhuwrf2#
从设置中更改密钥。
请注意,这将有效地注销所有用户。使用旧密钥发布的JWT将无效。