登录系统设计 - Arch1tect/chatbox-webpack GitHub Wiki

目前聊天系统只有用户发邀请时会联系数据库,登录时也应该联系数据库查看用户信息。 目的如下:

  • 用户积分 < 0 则不允许进入聊天系统
  • 查看用户是否有头像
  • 用户注册时间短则增加一些限制。

聊天系统联系数据库比较耗时,在socket login的时候发生,将信息存在内存之中,保存10分钟?因为信息不新鲜,用时需谨慎,不应该用来查积分。 500人在线,服务器断线,没了缓存,所有人重连,要查500次数据库。。。这个应该batch操作。(实际上发现并发并没有那么多) 平时断线断线重连与正常的网页刷新,600人也只有1 rps

更新

设计完整的登录系统,包括密码验证。 页面打开,如果chatbox iframe生成,那么查看本地是否有token,如果有:

  • 每个db api call 都带上token
  • socket login event 发送token

如果没有: 发送本地的数字id + 密码去/db/login拿到token存在本地

如果验证失败怎么办?用户需要去登录界面。。。

自动登录 提醒登录失败

用户发起的登录 提醒登录失败