我正在为每个请求刷新访问令牌并将前一个令牌列入黑名单。问题是如果有多个连续的请求,第一个令牌会被下一个请求失效。flask-jwt-extended 中是否有在将令牌列入黑名单之前实现宽限期的功能?
我正在阅读文档,但找不到此功能。你们能指导我走向实现目标的正确道路吗?
我正在为每个请求刷新访问令牌并将前一个令牌列入黑名单。问题是如果有多个连续的请求,第一个令牌会被下一个请求失效。flask-jwt-extended 中是否有在将令牌列入黑名单之前实现宽限期的功能?
我正在阅读文档,但找不到此功能。你们能指导我走向实现目标的正确道路吗?
没有办法在扩展中内置此功能。因为 Flask-JWT-Extended 对您用于将令牌列入黑名单的商店一无所知,所以将其作为此扩展的功能并没有任何意义。
但是,因为您控制检查令牌是否被撤销的方法,所以这很容易做到。当您存储要列入黑名单的令牌时,您可以存储它被列入黑名单的时间戳。然后在检查令牌是否被列入黑名单的回调函数中,您可以将令牌被列入黑名单的时间戳与当前时间减去 timedelta 进行比较,从而为结果检查提供宽限期。
阅读本文以了解在每个请求上创建新令牌的一些替代方法可能也是一个好主意:Flask JWT 在每个请求上扩展令牌的有效性