分布式,微信小程序 服务器保持登入态解决方案,

登入解决方案有很多,

传统:

      => 通过输入密码和用户名, 经过数据库查询, 然后将用户放入session, 下发sessionid 给游览器,  每次游览器携带cookie 里面的sessionid, 访问服务器, 查询session , 判断用户是否登入

 

现在:

     spring boot + spring cloud ,   dubbox + zookeeper 等一系列的分布式微服务框架兴起,   各服务层分离, cookie 已经无法穿过服务器访问, 造成查询不到用户 ==  未登入

 

解决方案:

    1, 加密算法解决方案, 优势就是简单,  用户登入以后将用户的标志, 如 用户id 时间戳 加密成密文, 返回给前端, 前端每次操作,都将密文上传,  服务器拿到密文后解密成id与时间戳, 进行操作,  缺点就是不安全, 加密算法可能会被破解, 加密工具类

 

    2, 采用redis 存储登入秘钥, 这也是楼主推荐的, 当前主流的解决方案, 用户在登入以后, 将用户的 id + 随机字符数(如UUID) + 时间戳 ,  组成redis 的key, 设置redis 的key 存活时间不能太长,  因为redis的key数量有限,  将用户加密数据存储到redis 后, 将密文返回给用户,  每次用户操作都携带密文进行操作, 服务器设置全局过滤器, 进行全局校验登入状态, 从redis 查询登入状态, 这样用户的密文都是不一样的, 也保证了数据的安全性,  而redis 是可以共享的, 分布式服务器的服务都能看的见,   

 

   还需要使用心跳, 定时更新redis的key存活时间, 也就是说需要定时自动登入, 清理已下线用户

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值