关于单点登录SSO开发

需求:在A平台点击B项目链接,(前提是B项目自带登录功能),需求是点击链接,直接免登陆进入B项目

详细过程:首先是在A平台点击,免登陆进入B项目,然后另一种情况是,把B项目链接复制出来,在浏览器地址栏回车进入,

这种情况下,清空浏览器缓存,操作以上同样的步骤,回撤后跳转到A项目定制的登录界面,输入相关账号密码,点击登录进入B项目

开发步骤:

在B传统地址下,添加/SSOLogin(hash值)

  1. 利用location.hash获取当前状态hash值
  2. 利用created、mounted函数进行触发
  3. 调用后台相关接口,在调用成功返回的状态码下写入后台给的地址链接(能跳转到A项目定制的页面上)利用window.location.href进入指定界面,然后输入指定的账密
  4. 此时浏览器已经存在session值,直接跳转到后端设定的/auth界面
  5. 前端根据location.hash获取当前的hash
  6. 然后在调用另一个接口,在这个接口调用成功返回域中写入this.$router.replace({name:home}),但此时会有this指向问题,所以把this替换成that
  7. 处理路由守卫,兼容免登陆,前端给出一个自己造的session值,利用这个值和location.hash来控制路由守卫
  8. 用7步骤来实现传统登录和免登陆的方式

猜你喜欢

转载自blog.csdn.net/weixin_47389477/article/details/116497544