Vue sso认证快速接入实践

SSO原理

SSO(Single Sign On)单点登录系统。现在很多系统都由多个子系统组成,为了统一登录,保证登录一次,所有子系统都能访问,提升用户体验,SSO方案由此而生。

SSO系统是单独部署的一套认证系统,独立于所有子系统,包含登录认证、授权、用户管理功能。用户需要登录任意业务子系统时,都被重定向到认证中心,通过认证中心登录认证后,可以重定向到子系统。

简单点说:有sso认证系统给子系统提供了身份认证的能力,子系统依赖sso的身份认证。

详细了解:https://www.cnblogs.com/-wenli/p/12630442.html

快速接入方案

最近尝试将一个前端系统快速接入公司的sso认证,方案如下:

Vue sso认证快速接入实践

实现

在vue router文件下:

注意点:

1、本地存储一个token,用Cookies存储,此本地token在sso认证的时候带入至sso跳转链接,认证成功后,回调链接带回,可将本地token和认证后的token存储;

2、这里sso-localtoken为本地token,access_token为认证成功后存储在后端的token;

3、认证成功后,处理回调后重定向到前端;

router.beforeEach((to, from, next) => {
              // 获取本地token
              var islocaltoken =  VueCookies.isKey("sso-localtoken");

              // 判读是否已登陆
              if (islocaltoken){
                  var localtoken = VueCookies.get("sso-localtoken");
                  // 获取服务端存储的身份认证的token
                  Getacctoken(localtoken).then(access_token=>{
                        // 如果本地token和身份认证的token匹配
                        if (access_token != ""){
                            //获取用户信息
                             GetUserInfo(access_token).then(userinfo=>{                    
                            })
                            //如果本地token和身份认证的token不匹配
                          }else{
                  // 生成本地token,替换存储本地token,跳转sso认证;
                          }
                      }
                  );
                  // 继续正常请求网页
                  next()
              }else{
                    //生成本地token,存储本地token,跳转sso认证;
              }

});
//获取服务端tokenasync function Getacctoken(localtoken){     var url = "xxx?localtoken=" + localtoken;     const response = await axios.get(url);     return response.data}//获取身份信息async function GetUserInfo(access_token){     var url = "xxx?access_token=" + access_token;     const response = await axios.get(url);     return response.data}

undefined

Original: https://www.cnblogs.com/-wenli/p/15757609.html
Author: std
Title: Vue sso认证快速接入实践

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/549148/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JDBC事务2

    Class.forName("com.mysql.jdbc.Driver"); public class Driver extends NonRegisteri…

    技术杂谈 2023年5月30日
    093
  • Windows下 webpack4.0 的安装

    这里我们通过npm来进行安装 1. 安装 webpack // 全局安装webpack npm install webpack -g 2. 通过 webpack -v 命令查看当前…

    技术杂谈 2023年5月31日
    0116
  • 网络设备配置-10、利用ACL配置访问控制

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    技术杂谈 2023年7月11日
    098
  • Flink CDC 与Hudi整合

    之前写过Flink CDC sink 到 Iceberg中,本篇主要实践如何CDC到hudi中. 什么是hudi? Hudi is a rich platform to build…

    技术杂谈 2023年7月10日
    0117
  • 设计模式-策略模式

    预先定义有着不同执行过程但 结果相同的 算法族,运行时指定所需算法。 算法族此处为一组有共同主题的有相同结果的不同算法的集合。 话不多说,看个优化案例。 优化案例 不使用策略模式的…

    技术杂谈 2023年7月11日
    065
  • permgenspace解决方案

    原文地址:http://outofmemory.cn/c/java-outOfMemoryError java.lang.OutOfMemoryError这个错误我相信大部分开发人…

    技术杂谈 2023年7月24日
    069
  • P8141 [ICPC2020 WF] What’s Our Vector, Victor?

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年6月21日
    093
  • 《方法论学习 v0.8》出炉

    这两天耗费不少脑细胞,把以前的学习框架重新按照企业架构方法整理了一下,终于完成了这个版本,信息量还是比较大。 以下是过程中在朋友圈发出的一些截图,在这里汇总一下发出 Origina…

    技术杂谈 2023年5月30日
    093
  • canvaskit默认字体更改

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/bigben0123/p/15213977.htmlAu…

    技术杂谈 2023年5月31日
    090
  • Passing Data Between Airflow Tasks

    introduction Sharing data between tasks is a very common use case in Airflow. If you&#8217…

    技术杂谈 2023年5月31日
    0125
  • Microsoft Teams平台手册公开邀请试读

    这本书的全名为《Microsoft Teams平台完全手册》,可以简称为 《Teams平台手册》,我准备从几个不同的维度,给读者展现完整的Microsoft Teams平台,包括但…

    技术杂谈 2023年5月31日
    0100
  • 常见Git命令汇总

    前言 最近,有朋友私信让我就 git 使用做篇文章分享,分享一下我在日常工作中是如何使用 git的。我当场就收费两包辣条,最后讨价还价,…

    技术杂谈 2023年7月11日
    077
  • AtCoder Beginner Contest 235

    AtCoder Beginner Contest 235 A – Rotate 思路分析: 因为他给的数是三位数,我们直接取出每一位,然后拼凑就可以了 代码如下: #i…

    技术杂谈 2023年7月24日
    073
  • 【摸鱼神器】UI库秒变低代码工具——表单篇(二)子控件

    上一篇介绍了表单控件,这一篇介绍一下表单里面的各种子控件的封装方式。 主要内容 需求分析 子控件的分类 子控件属性的分类 定义 interface。 定义子控件的的 props。 …

    技术杂谈 2023年5月31日
    091
  • 规范浅谈

    代码规范这东西网上很容易百度到一堆,除了天下文章一大抄的问题,另外,多数只给了结果,原因没有充分说明,或者非常的纠结于大写小写,一个函数可以写几行的细节。感觉有点容易让新人误入歧途…

    技术杂谈 2023年5月31日
    082
  • vnpy源码阅读学习(5):关于MainEngine的代码阅读

    在入口文件中,我们看到了除了窗体界面的产生,还有关于 MainEngine和 EventEngin部分。今天来学习下 MainEngine的代码。 首先在run代码中,我们看到以下…

    技术杂谈 2023年7月11日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球