flask-jwt-extended 库中的黑名单是不是有宽限期?

Posted

技术标签:

【中文标题】flask-jwt-extended 库中的黑名单是不是有宽限期?【英文标题】:Is there a grace period for blacklisting in flask-jwt-extended library?flask-jwt-extended 库中的黑名单是否有宽限期? 【发布时间】:2019-09-06 20:15:42 【问题描述】:

我正在为每个请求刷新访问令牌并将前一个令牌列入黑名单。问题是如果有多个连续的请求,第一个令牌会被下一个请求失效。 flask-jwt-extended 中是否有在将令牌列入黑名单之前实现宽限期的功能?

我正在阅读文档,但找不到此功能。你们能指导我找到实现目标的正确道路吗?

【问题讨论】:

【参考方案1】:

扩展中没有内置的方法可以做到这一点。因为 Flask-JWT-Extended 不知道您用于将令牌列入黑名单的商店,所以将其作为此扩展程序的功能并没有任何意义。

但是,因为您控制检查令牌是否被撤销的方法,所以这很容易做到。当您存储要列入黑名单的令牌时,您可以存储它被列入黑名单的时间戳。然后在检查令牌是否被列入黑名单的回调函数中,您可以将令牌被列入黑名单时的时间戳与当前时间减去 timedelta 进行比较,从而为结果检查提供一个宽限期。

阅读本文以了解在每个请求上创建新令牌的一些替代方法可能也是一个好主意:Flask JWT extend validity of token on each request

【讨论】:

我也在考虑你的那个建议。也许值得尝试一下。谢谢!

以上是关于flask-jwt-extended 库中的黑名单是不是有宽限期?的主要内容,如果未能解决你的问题,请参考以下文章

get_jwt_identity() 在 Flask-JWT-Extended 中返回 None

为 flask-jwt-extended 获取其他用户 jti

使用 flask-jwt-extended + ariadne (graphql) + react 设置身份验证/授权

使用flask-jwt-extended回调与flask-restful和create_app

使用黑名单缓存使JWT无效是否安全?

flask-jwt-extended TypeError:“函数”类型的对象不是 JSON 可序列化的