flask_jwt_extended 蓝图中 销毁旧的token给我写一个例子
时间: 2023-05-13 19:05:11 浏览: 386
flask 实现token机制的示例代码
当用户注销或更改密码时,我们需要使旧的token失效,以确保安全性。下面是一个使用 flask_jwt_extended 蓝图销毁旧的token的例子:
```python
from flask import Blueprint
from flask_jwt_extended import jwt_required, get_jwt_identity, get_raw_jwt
auth_bp = Blueprint('auth', __name__)
@auth_bp.route('/logout', methods=['POST'])
@jwt_required
def logout():
jti = get_raw_jwt()['jti']
# 将 jti 添加到黑名单中
# 这样,所有使用该 jti 的 token 都将失效
# 你可以使用 redis 或者数据库来实现黑名单
# 这里只是一个简单的示例
BLACKLIST.add(jti)
return {'message': '注销成功'}, 200
```
在上面的例子中,我们使用了 flask_jwt_extended 提供的 get_raw_jwt() 函数来获取当前 token 的 jti(JWT ID)值,然后将其添加到一个黑名单中,以使所有使用该 jti 的 token 失效。BLACKLIST 可以是一个 set 或者一个列表,用于存储所有失效的 jti 值。
请注意,这只是一个简单的示例,实际应用中你需要更加严格的安全措施来保护用户的隐私和数据安全。
阅读全文