SSO单点登录前后端分离完整版·(开源)

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

一、源码仓库地址:

1.1 Gitee

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



1.2 GitHub

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




 二、前后端分离

2.1 后端

启动sso-server服务模块

启动client模块前,先启动redis

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

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

2.2 前端 


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


如果appId不合法会抛出错误

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

local模式登录,无需指定appId


代码中,后端服务总过有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 后面模块启动,访问效果如下:

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



三、项目模块划分


四、核心业务设计



 


五、各模块流程时序图

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

原图地址:Client模块时序图


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

原图地址:Local模块时序图 


六、数据库ER图

用户密码MD5加密

六、接口文档

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




七、技术栈


八、最后

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

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

  • 34
    点赞
  • 211
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
前后端分离单点登录中,我们可以采用一些方法来解决一些问题。首先,我们可以使用token来代替全局的明文传递的URL。通过在用户登录后生成一个token,并将其存储在后端,然后将该token返回给前端,前端在进行请求时携带该token进行验证。这样做可以避免直接在URL中传递token,增加了安全性。 其次,在前后端分离的情况下,前端已经不存在session会话了,因此可以考虑使用cookie来存储登录信息。在用户登录成功后,将相关信息存储在cookie中,并设置cookie的安全属性,如httponly和secure,以增加安全性。对于内网项目,可以不考虑https协议,但对于外网项目,必须使用https协议来保护cookie的安全性。 以上是在前后端分离单点登录中解决问题的一些方法,可以根据具体情况选择适合的方法来实现单点登录功能。具体的实现细节可以参考相关的源码,如https://github.com/xjs1919/enumdemo下的sso-static。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [前后端分离如何做SSO单点登录?](https://blog.csdn.net/goldenfish1919/article/details/100169368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [前后端分离 单点登录SSO 纯前端实现单点登录SSO](https://blog.csdn.net/fay462298322/article/details/54963716)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值