摧毁一个烧瓶 Restful 令牌

Destroy a Flask Restful Token

下面Flask RESTful Destroy User Token讨论如何销毁烧瓶令牌,但这并不能阻止中间人攻击。有没有办法使令牌无效,使其在到期前不再处于活动状态?

您提到的问题中显示的令牌是通过向某些数据添加加密签名创建的。通常存储在令牌中的数据包括令牌所有者(例如用户 ID),还可以包括到期日期。

这些令牌的好处是所有有用的数据都存储在令牌中,因此您不需要在数据库中存储任何内容。您只需将令牌传递给客户端,当客户端发回它时,您对其进行解码并使用其中的信息来了解客户端是谁。

这种方法的缺点是没有简单的方法来撤销令牌,因为令牌没有存储在任何地方。要扩展此机制以允许撤销,您可以添加一个数据库 table,其中存储已撤销的令牌。然后在令牌验证期间,您不仅要解码令牌,还要确保令牌不在您的已撤销列表中。

另一种完全不同的方法是不使用签名令牌。只需将令牌设为随机 UUID 并将其存储在每个用户的用户 table 中即可。如果你索引它,那么当客户端发送令牌时,你可以通过数据库搜索找到用户。然后只需为用户清除令牌字段即可撤销令牌。

希望对您有所帮助!