前言:3月建的仓,完成确是在7月中旬,实际完成时间加起来不到10天,中间停滞了很久,主要工作太忙,白天没时间搞,况且工作摸鱼也不是我的作风,晚上下班回家要帮家人一起带娃,唯一的时间也会用来看看书和视频充充电,时间唯一“宽裕”点的就是周末,但周末时间也不是全部用来赶工,偶尔也得休息放松放松,也是想起了就搞一点,这种状态其实挺好的,做自己喜欢的事情,没人催,慢工出细活,落地就行了。

一、源码仓库地址:

1.1 Gitee

https://gitee.com/appleyk/seven-sso/tree/v1.0/


SOA架构 前后端分离 前后端分离 sso方案_sso


1.2 GitHub

https://github.com/kobeyk/seven-sso/tree/v1.0


SOA架构 前后端分离 前后端分离 sso方案_单点登录_02


SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_03


 二、前后端分离

2.1 后端


SOA架构 前后端分离 前后端分离 sso方案_sso_04

启动sso-server服务模块




SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_05

启动client模块前,先启动redis


SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_06

启动seven-app-test/seven-auth-client模块




SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_07

sso-server服务端应用站点静态配置



2.2 前端 

SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_08


seven-sso-ui 前端模块单独启动(如果单独启动,需要手动yarn,如果是maven编译,会自动yarn依赖):yarn start

SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_09

SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_10


SOA架构 前后端分离 前后端分离 sso方案_单点登录_11

如果appId不合法会抛出错误



SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_12

启动seven-auth-local,前端站点配置local模式和local模式下的后端服务地址


SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_13

local模式登录,无需指定appId


SOA架构 前后端分离 前后端分离 sso方案_sso_14

代码中,后端服务总过有4个端口,分别是:

8866:seven-auth-admin模块的服务端口,admin模块启动后其实访问的也是前端构建好的静态文件。

8080:seven-sso-server模块的服务端口;

8081:seven-auth-client(seven-app-test父模块下)模块的服务端口,这个需要配合seven-sso-server使用,且前端站点的config.js走的是sso模式才有意义;

8082:seven-auth-local(seven-app-test父模块下)模块的服务端口,这个可以单独启动,即这个模块模拟的是应用系统后端将用户认证功能合为一体的情况,这个需要配置local模式的前端站点配置。

整个测试过程看似繁琐,实则每个模块的功能职责很清晰,多跑几遍测试测试,你一定会对单点登录有一个全新的认知!喜欢的关注一波再走!


 seven-auth-admin 后面模块启动,访问效果如下:

SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_15


SOA架构 前后端分离 前后端分离 sso方案_sso_16

应用系统首页,为了演示,这里只搞了一个简单的UI



SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_17


三、项目模块划分

SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_18


四、核心业务设计

SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_19


SOA架构 前后端分离 前后端分离 sso方案_sso_20


 

SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_21


五、各模块流程时序图

5.1 Client模块引入后工作流程图:

原图地址:Client模块时序图

SOA架构 前后端分离 前后端分离 sso方案_sso_22


5.2 Local模块引入后工作流程图:

原图地址:Local模块时序图 

SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_23


六、数据库ER图

SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_24

SOA架构 前后端分离 前后端分离 sso方案_SOA架构 前后端分离_25


SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_26

用户密码MD5加密



六、接口文档

接口文档地址:http://localhost:8080/

SOA架构 前后端分离 前后端分离 sso方案_单点登录完整案例_27


SOA架构 前后端分离 前后端分离 sso方案_spring用户统一认证中心_28


七、技术栈

SOA架构 前后端分离 前后端分离 sso方案_sso_29


八、最后

        其实也没什么想说的,最近太忙了,没时间细说这个项目,这个项目也是抽时间整理出来的,这个项目跟之前我开源出来的license项目意义差不多,都是后端做Java Web应用系统用的比较多的功能,之所以开放出来,一是觉得这种项目如果闭塞的话,其实没多大意义,不如开出来让更多人学习借鉴,二是走开源项目可以使自己沉淀积累通用的东西,我开出来的项目不是随随便便的,都是经过梳理设计的,不说很优秀吧,起码设计上还是很巧妙的,代码看上去还是很舒服的。

       等什么时候来兴致了,准备做个UP主,把自己这些年的管理和开发经验好好说道说道,正所谓授人以鱼不如授人以渔!我个人是强烈甚至是反感八股文"架构师"的,就这,有时间再说吧。