为 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 + ariadne (graphql) + react 设置身份验证/授权