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

Posted

技术标签:

【中文标题】为 flask-jwt-extended 获取其他用户 jti【英文标题】:Get other user jti for flask-jwt-extended 【发布时间】:2019-09-08 16:15:54 【问题描述】:

如何获得'jti',不是我的,而是通过“用户名”? 在注册/登录时,用于访问和刷新的 jti 被分配给“用户名”。 所有说明和文档仅说明如何让我自己的 jti 以 smth 注销。像这样的代码:

class UserLogoutRefresh(Resource):
    @jwt_refresh_token_required
    def post(self):
        jti = get_raw_jwt()['jti']
        try:
            revoked_token = RevokedTokenModel(jti = jti)
            revoked_token.add()
            return 'message': 'Refresh token has been revoked',200
        except:
            return 'message': 'Something went wrong', 500

如何为其他用户获取 jti。 我想像:

jti = get_raw_jwt(identity='someusername')['jti']

为此必须存在,谁知道???

【问题讨论】:

【参考方案1】:

每个令牌都有一个唯一的 jti,它不受每个用户名的限制。例如,如果同一个用户创建了 3 个令牌,则所有令牌都将具有不同的 jti。如果您想访问这些 jti,那么您将在创建令牌时使用 decode_token 函数并将其保存在数据存储中,以便稍后查找

【讨论】:

当用户登录时,接下来发生在登录类 access_token = create_access_token(identity=data['username']) refresh_token = create_refresh_token(identity=data['username']) 我需要添加可能性管理员撤销这些令牌,为用户名 查看使用数据库将其列入黑名单的示例以了解其外观:github.com/vimalloc/flask-jwt-extended/tree/master/examples/… 它需要重建代码,但这是我需要的,谢谢。

以上是关于为 flask-jwt-extended 获取其他用户 jti的主要内容,如果未能解决你的问题,请参考以下文章

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

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

flask-jwt-extended:自定义错误消息

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

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

未使用 jwt_required 注释时,烧瓶路由请求授权标头