一看就会☀️Flask+redis,如何处理用户多端登录

本文探讨了项目中用户多端登录的问题,提供了两种解决方案。允许多端登录时,通过在Redis列表中存储sessionId并在密码修改时清除。禁止多端登录则使用Redis字符串记录唯一sessionId,新登录时清除旧session。利用Flask和Redis实现用户session管理,确保业务需求。
摘要由CSDN通过智能技术生成

项目中遇到的问题

用户在chrome和edge都登录,在一端修改了密码,另一端还能正常登录。
这个事件引出了很多问题。

需求1-允许用户多端登录

允许用户多端登录,在允许用户多端登录的情况下,修改密码后,其他端没修改密码是否被退出登录,需要重新登录

解决方案

在redis里存一个列表,记录这个用户每次登录产生的sessionId(手机号或者用户ID当键),当用户修改密码的时候,从列表中取出这些sessionID,并从存sessionID的redis库中删除这些sessionID。

需求2-不允许用户多端登录

不允许多端登录,当用户在第二个端登录时,让第一段登录的情况失效。

解决方案

在redis里存一个string,记录这个用户每次登录产生的sessionId(手机号或者用户ID当键),当用户登录的时候(login api)判断,这个redis(string)里是否有值, 有值就删除,当用户在登录的时候在登录装饰器中用这个string记录用户sessionID。保证只存一个sessionID

补充说明:

以上相当于在flask,session机制外,自己维护一个每个用户对应的sessionID的数据,通过操作这些sessionID,达到控制用户多端登录的业务。

flask,session机制是值,给前端返回的cook

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值