前端SSO实现

  • 主要设计思路
    • 独立的登陆页面项目
    • 子系统axios设置
    • 主登陆页代码
    • 主要难点

主要设计思路

  1. 独立的登陆页面项目 ,所有子系统的公共登陆页;
  2. axios请求拦截 ,子系统要做请求拦截,判断是否有token,token可以存在localstory和cookie里;
  3. 登陆页 ,登陆成功后,token存入localstory/domain中,重定向到子系统;

独立的登陆页面项目

  1. 使用vue-cli4 脚手架搭建公共登陆页系统 ,编写登陆页,(这很简单)
  2. 子项目路由拦截必须修改

子系统axios设置

  1. 请求拦截
// 请求拦截var mainUrl="https://123123.flagUrl.com"  //登陆页线上部署地址,  根据项目修改
axios.interceptors.request.use(config=>{
//1.在cookie拿取('Authorization'),  前提npm安装''vue-cookies''var accessToken= cookies.get('Authorization')if(!accessToken){accessToken = localStorage.getItem('accessToken')}if (accessToken) {config.headers.Authorization = accessToken;} else {window.location.href = mainUrl?redirectUrli=' + window.location.href; }
})
  1. 响应拦截
// 请求拦截
axios.interceptors.response.use(function (response) {//1 判断成功200&&token是否过期//2 不成功 路由跳转window.location.href = mainUrl?redirectUrli=' + window.location.href; //逻辑根据业务写
})

主登陆页代码

  1. 登陆成功逻辑
// 简写逻辑  具体根据自己项目改
axios.post(`${this.$url}/test/testRequest`,data)
.then(res=>{
//if 200let result = res.data;let str = window.location.hash;document.cookie = "Authorization=" +result.token +";domain=.flagUrl.com;path=/";localStorage.setItem('accessToken', accessToken);let oldUrls=str.split("redirectUri=")window.location.href = decodeURIComponent(oldUrls[ oldUrls - 1]);})

主要难点

  1. 所有子项目路由必须以.flagUrl.com结尾
    具体原因,自行百度 “跨域”
  2. cookie设置 domain 使用, 设置localstory
  3. **如果子系统 已经是老项目 不能用.flagUrl.com **
    可以主登陆页面和子系统页面 都隐藏一个相同域名的iframe作为中间信息传递, 目的都是为了多系统之间的token传递

VUE 前端SSO单点登录相关推荐

  1. cas跨域单点登录原理_CAS实现SSO单点登录原理

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  2. drcom宽带认证登录超时_开发SSO单点登录需要注意的问题

    一.单点登录系统开发需要注意的问题 1.单点登录系统需要支持jsonp请求? 单点登录系统主要是向其他系统提供用户身份验证服务,因此需要提供对外接口,而外部系统通过接口访问时,必然涉及跨域问题,因此需 ...

  3. 基于CAS实现SSO单点登录

    点击关注公众号,实用技术文章及时了解 1. 概述 1.1. 什么是SSO? 单点登录( Single Sign-On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使 ...

  4. 互联网分布式微服务云平台规划分析--SSO单点登录系统

    介绍 鸿鹄云架构[SSO单点登录系统]为所有微服务提供统一的用户认证服务,系统本身属于微服务模式,使用JWT+Redis分布式存储方案,确保不同微服务.系统之间的安全通讯和统一用户校验.认证.在整个服 ...

  5. 实现SSO单点登录的思考

    关注 "Java艺术" 我们一起成长! 随着公司业务的发展,子系统越来越多,实现SSO单点登录的需求就愈加迫切. 我们一些子系统中都有使用Redis存储Session,这最初是为了 ...

  6. 前后端分离基于Oauth2的SSO单点登录怎样做?

    一.说明 单点登录顾名思义就是在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统,免除多次登录的烦恼:本文主要介绍跨域间的 前后端分离 项目怎样实现单点登录,并且与 非前后端分离 的差 ...

  7. SSO单点登录教程案例 客户端和服务端

    这里写自定义目录标题 前言 条件 环境要求 准备工作 下载基础项目 项目结构说明 执行流程图 代码实现 单点登录步骤梳理: 代码下载 前言 文章摘抄:https://www.jianshu.com/p ...

  8. 一篇了解SSO单点登录

    SSO基础 文章目录 SSO基础 1.什么是单点登录? 2.回顾普通系统登录 3.多系统登录的问题与解决? 3.1.Session不共享问题 XXL-SSO框架基础入门 1.什么是XXL-SSO 2. ...

  9. 逛淘宝天猫想到SSO单点登录

    在前面文章中,我们聊了自建账号体系的注册和登录: 注册登录原理及密码安全问题(链接) 也聊了利用微信和QQ进行第三方登录,并详细讲述了原理和流程: 第三方账号登录的原理(链接) 然后,有朋友留言问到了 ...

最新文章

  1. 怎么保证缓存和数据库一致性
  2. httpd中工作模型的比较
  3. Go语言中字符串的查找方法小结
  4. OpenCV字母识别letter recognition的实例(附完整代码)
  5. Python猫荐书系列之七:Python入门书籍有哪些?
  6. python绘图时的分解问题的步骤-零基础学python-15.2 分解函数
  7. 飞鸽传书2011怎么用之启动常见问题(二)
  8. visual studio 2010常用快捷键
  9. android内核源码下载和编译
  10. git rebase后无法push远程分支的问题解决
  11. Java 注解Annotation总结二
  12. 基于地理距离的省际空间权重矩阵
  13. 利用计算机可视化画一个矩形,可视化程序设计大作业题目
  14. Google Dapper,大规模分布式系统的跟踪系统
  15. open_table和opened_table的区别
  16. C:/Inetpub/AdminsScripts的常用语法
  17. python 量子电路模拟库qiskit
  18. 初试Cisco Packet Tracer–5——路由器连接两个子网
  19. 一个中文占多少个英文字符
  20. GoLang之Go中的map如何实现顺序读取

热门文章

  1. java 项目测试_项目测试工作流程
  2. cpmp(compulsory)
  3. 非常OK网独创BSC模式可行性分析
  4. 网工必知—什么是堡垒机?-CCIE
  5. 深度可分离卷积(Xception 相关)
  6. 解密.ts视频文件(C#)
  7. AFDX(ARINC664)的网络协议——MAC层
  8. 模拟电路2(二极管的模型与电路分析)
  9. 【Unity】Mesh网格编程(三)万能网格几何形体
  10. 再下一城!CPC即将登录全球知名交易所BiKi!