flask管理员针对正在使用的用户进行删除

本文介绍了一个Flask项目中,如何在管理员删除用户后,阻止已删除用户继续操作。通过使用jwt签发token进行用户验证,当管理员删除用户时,将用户ID加入已删除列表。后端定义请求过滤器,检查每个请求,如果用户ID在已删除列表中,则返回422错误码,前端接收到错误码后跳转至登录页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目背景

后端使用flask框架,使用jwt签发token的方式进行用户验证,前端使用的是vue

需求

管理员对一个正在使用网站的用户进行了账户删除的操作,此时若用户继续在网站进行操作,应给出账户被删除的操作并跳转至登录页面。

实现方案

在后端定义了一个已删除用户的列表,当网站初始化时,该列表为空。在管理员进行删除操作之后,将被删除用户的ID存进已删除用户的列表中。
定义一个请求过滤器,客户端的每次请求都要进行验证,确认该用户不在已删除用户的列表中。
过滤器代码如下:

@app.before_request
def check_delete():

    @jwt_required
    def getClaims():
        claims = get_jwt_claims()
        return claims
        
    if request.endpoint not in filter_exception_list:
        claims = getClaims()
        if claims:
            if claims.get('user_id') in delete_user_list:
                return jsonify({"msg":"您的账号已被删除,请联系系统管理员确认情况!"}), 422

其中filter_exception_list是未登录的情况下访问的接口的endpoint集合。
user_id是在用户登录、签发token是存储的一个属性,对应的是用户id。
这个过滤器的效果是在用户登陆的情况下,如果账号被删除,用户的id会存在delete_user_list中,在用户下一次请求到来的时候,经过判断会返回给客户端一个422的错误码。

前端代码


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值