概念:即多个站点共用一台认证授权服务器,用户在其中任何一个站点登录后,可以免登录访问其他所有站点。而且,各站点间可以通过该登录状态直接交互。例如
单点登陆系统解决方案设计
解决方案1:用户登陆成功以后,将用户登陆状态存储到redis数据库,例如
说明:在这套方案中,用户登录成功后,会基于UUID生成一个token,然后与用户信息绑定在一起存储到数据库。后续用户在访问资源时,基于token从数据库查询用户状态,这种方式因为要基于数据库存储和查询用户状态,所以性能表现一般.。
解决方案2:用户登陆成功以后,将用户信息存储到token(令牌),然后写到客户端进行存储。(本次设计方案)
单点登陆系统初步设计 服务设计说明:在这套方案中,用户登录成功后,会基于JWT技术生成一个token,用户信息可以存储到这个token中。后续用户在访问资源时,对token内容解析,检查登录状态以及权限信息,无须再访问数据库。
基于单点登陆系统中的业务描述,进行初步服务架构设计,如图所示
其中,服务基于业务进行划分,系统(system)服务只提供基础数据(例如用户信息,日志信息等),认证服务(auth)负责完成用户身份的校验,密码的比对,资源服务(resource)代表一些业务服务(例如我的订单,我的收藏等等).
工程结构设计 基于服务的划分,设计工程结构如下:未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)