轻松筹是全国1.6亿人使用的全民众筹平台,几乎所有核心业务都依赖于账号系统,账号系统的用户体验,安全性,稳定性直接影响着轻松筹所有业务的运行;
轻松筹的发展非常迅速,已经展开了多条产品线,单点登录的需求愈加强烈;另外由于历史包袱的原因,也遗留了一些问题亟待解决。
本次交流主要与大家分享一下轻松筹账号系统(侧重登录授权服务)的架构设计和改造方案。
由于历史包袱的遗留问题,轻松筹的账号系统(登录授权服务)之前主要存在以下几个方面的不足:
- 由于历史包袱的遗留问题,三端登录方式不统一
- 产品线增多,单点登录的需求越来越强烈
- 安全性不够
- 容灾能力不够
需要达到以下几个方面的目标
- 保证只要用户较长时间段(比如30天)内登录过,就不需要重新登录
- 单点登录,在一个站点登录后,另外一个站点就不需要重复登录(用户几乎无感知)
- 采用第三方登录的时候,能使用每一个站点对应的公众号
- token难以伪造,具有一定不可逆性
- token应该有较快的过期机制,避免被人获取token后伪造用户操作
- 被恶意窃取后,具有发现机制
- token具有自解释性,即自带某些信息,在某些极端恶劣情况下(比如存储服务挂了),依然能提供服务
概述
账号系统最核心的功能就是登录授权,总体思路也很简单:
用户登录成功后,服务端会生成token信息,并将其和用户信息关联起来,返回给前端token信息,
前端携带token来访问所有接口,后端再根据前端发过来的token信息标识这是哪个用户的行为
这里所说的token信息包括以下几个字段(服务端生成后返回给前端的)