介绍
# 介绍
# 单点登录介绍
单点登录(Single Sign-On,SSO)是一种用户身份认证和授权机制,它允许用户在多个应用程序之间共享一个身份验证凭据,从而实现用户在多个应用程序中的统一登录。
# 单点登录原理
单点登录的原理是:当用户在第一个应用程序中登录时,系统会将用户的身份信息(如用户名、密码等)存储在服务器上, 并生成一个唯一的标识符来标识该用户。当用户在第二个应用程序中访问时,系统会检查该用户的标识符,如果该标识符有效, 则允许用户访问该应用程序;如果该标识符无效,则要求用户重新登录。
# 本次单点登录应用场景
- 1、通过门户应用列表跳转到某个子应用 直接通过统一认证平台登录页面实现登录 然后跳转到门户页面,门户页面点击某一个子应用,子应用会自动跳转到对应的子应用页面
- 2、通过菜单嵌入子应用的页面 通过在主应用中配置子应用的菜单,然后点击菜单,子应用会自动跳转到对应的子应用页面
- 3、通过直接浏览器访问子应用的ip地址 直接在浏览器tab页中输入子应用ip地址,子应用会自动跳转到对应的子应用页面
# 接入方式
- jssdk直接接入 适用于前后端分离的项目,前端通过jssdk获取authcode,然后通过authcode获取用户信息,子应用通过用户信息完成自己的认证登陆,之后逻辑走自己的认证 逻辑,之后的认证续期和请求认证都走自己的逻辑,代码侵入较低
- jssdk和Javasdk同时接入 适用于前后端分离的项目,前端通过jssdk获取authcode,然后通过authcode获取用户信息,每次访问后端,全部携带authcode,后端sdk通过authcode获取用户信息, 子应用通过获取上下文中的用户信息完成自己的认证逻辑,代码侵入较高,借助与后端sdk的认证逻辑
- 纯JavaSdk接入 使用于前后端不分离的项目,因前后端不分离,请求是先到后端的,所以需要后端sdk完成认证逻辑,后端接入Javasdk,访问请求自己的服务时候,先走sdk中的登录拦截, 获取cookies或者请求头中的authcode,然后通过authcode获取用户信息,子应用通过获取上下文中的用户信息完成自己的认证逻辑,这种方式需要确保后端的sdk先走拦截
- 自行接入 直接调用统一认证平台的接口,获取authcode或者token,然后通过authcode获取用户信息,子应用通过获取上下文中的用户信息完成自己的认证逻辑
注意
具体使用那种接入方式,需要根据项目实际情况进行选择,具体接入方式可参照文档