场景:
vue + antdesign的后台管理项目,有两个系统
问题:
用户已经在第二个系统登录,然后在第一个系统禁用该用户,此时该用户在第二个系统中操作时,应该强制退出
需求:
请教,如何实现在第二个系统该用户操作时,强制退出,不能有操作(因为该账号已经被禁用了)
//此时该账户在这个系统操作时应强制退出
操作时候调用接口,一旦调用了接口,后端校验token,返回token失效,提示用户,强制退出
用户每次在调用接口的时候,后台去查询一下当前权限,或者设置session,让session过期, 返回异常状态,前端拿status 去判断,让他返回登录界面,清空缓存信息。
核心问题是第二个系统怎样知道已经不具备权限了
第一种方案:当禁用该用户,原则上讲:第二个系统已经没有办法从后台拿数据了,后台接口返回的状态码不能是200。
需要前后台协作才行,后台定义一个状态码,前端检测到对应的状态码
第二种方案:websocket通信,微信的登录就是采用这种,登录状态实时检测,不能同时登录
1.每次请求的时候,除了校验token之外,还要校验一下token对应用户的状态
2.或者每次登录的时候,把token存进redis,禁用就删除redis的数据。每次请求的时候判断redis是否存在