美文网首页
防止用户同一客户端同时登录

防止用户同一客户端同时登录

作者: 程序之道 | 来源:发表于2020-09-24 14:50 被阅读0次

    需求

    不同客户端可以同时登录 , 但同一客户端 2个同样帐号不允许登录
    就是说同一个 tid 同一帐号不允许同时登录 , 不允许的意思就是第1人登录后, 第2人再登录, 第1人会被踢下来,失效

    实现

    1 redis

    因为token的管理使用的是redis
    在生成token 的同时再生成一个key key是: tid:userid 内容: token
    tid 为客户端id 比如web端为1 安卓为2 pc 端为3 由各个客户端传给后台
    如果第二人登录时, 根据tid:userid 找到token ,删除 此key 和token
    再将第二人的登录信息 插入到redis 中 .
    这时第一人登录的信息就会过期, 也就实现了踢下线
    (为什么不做成第二人登录时不放行, 因为有可能是第1人和第2人都是用户本人, 他可能会在第1个手机未退出登录时更换另一个手机登录,如果不放行,他必须等第1个token失效后才能使用 )
    这个防过期的key 和token 的过期时间都是一样

    2 数据库

    同上面一样, 在没有redis 时使用数据库存储key

    相关文章

      网友评论

          本文标题:防止用户同一客户端同时登录

          本文链接:https://www.haomeiwen.com/subject/ktnzyktx.html