cas单点登录 前端步骤流程

news2024/9/22 13:37:26

CAS(Central Authentication Service)是一个开源的单点登录协议和实现,它提供了一种统一的方法来管理和验证用户身份,使用户只需通过一次登录即可访问多个应用程序。CAS 单点登录的工作原理是基于服务提供者 (Service Provider) 和身份认Identity Provider) 的交互。

 步骤流程

例如以网站1访问 ip为 192.168.1.201

1. 判断当前用户是否登录,如果没登录要跳转到登录服务器的ip上 并携带之前的地址  例如 192.168.1.110?service=192.168.1.201。

2. 在192.168.1.110输入账号密码 登录后会服务器会返回 票据 (ticket )用于请求token的变量  然后会重定向到网站1 192.168.1.201?ticket=xxxx。

3.用在url中的ticket去请求token,返回用户标识信息 完成单点登录。

 

以Vue为例,只需要在路由守卫中判断无token 跳转到登录页的流程替换掉跳转即可。

举例:

import { casServe } from '@/utils/url'

router.beforeEach(async (to, from, next) => {
  const token = getToken(); // 获取token
  // 如果访问的是权限页面
  if (!freeList.includes(to.fullPath)) {
    if (token) {
      next();
    } else {
      // 单点登录 如果存在ticket 则去后台获取token  如果to可以拿到也可以用to
      if (window.location.href.includes('ticket')){ 
        let ticket = ''
        const ticketArr = window.location.href.split('?')[1].split(['='])
          ticket = ticketArr[1].slice(0,-2)
        await store.dispatch('user/casLogin', { ticket, service: casServe })
        next('/')
        // 如果不存在ticket 则跳转到cas服务器登录
      } else {        
        window.location.href =  casServe + '/user/login?service=' + encodeURIComponent(window.location.origin)
      }

      // 非单点登录
      // next("/login");
    }
  }
  else if (token && freeList.includes(to.fullPath)) {
    next(from.fullPath);
  } else {
    next();
  }
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MNIST机器学习入门

引入所需库 import osimport cv2 import matplotlib.pyplot as plt import numpy as np import pandas as pd import tensorflow as tf from PIL import ImageMNIST数据集 下载MNIST数据集 mnisttf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) mnist.load_…

【干货】Android系统定制基础篇:第七部分-Android OTA升级(系统、应用)

OTA升级应用 项目地址:https://github.com/aystshen/Android-RomUpgrade. 这是一个负责 Android OTA 升级的后台应用,开机后自动运行后台 Service,支持系统升级和应用升级,支持本地升级(tf卡、u盘)和在线升…

数据库系统概述——第一章 绪论(知识点复习+练习题)

✨博主:命运之光 🦄专栏:离散数学考前复习(知识点题) 🍓专栏:概率论期末速成(一套卷) 🐳专栏:数字电路考前复习 🦚专栏:数…

Qt 每月收支计算

Qt 每月收支计算,针对每月有支出(房贷、车贷、花呗、借呗)的情况,计算收支明细,直观看到未来的个人经济情况,培养良好的消费习惯,进行理性的财富支配,量入为出。 #include "mai…

云安全技术(三)之云计算相关的安全概念

云计算相关的安全概念 Security Concepts Relevant to Cloud Computing 1. 密码学和密钥管理 Cryptography and key management 1、加密技术: 有许多不同类型和等级的加密技术。在云环境中,云安全专家有责任评价应用程序的需求、所使用的技术、需要保护的数据类型&…

【UE 从零开始制作坦克】5-通过旋转摄像机控制炮塔旋转

效果 步骤 打开动画蓝图“ABP_West_Tank_M1A1Abrams” 我们在动画图表中可以发现控制坦克炮塔旋转和炮管旋转的变量分别是“TurretRotation”和“GunRotattion”,因此只需改变这两个旋转体的值即可控制炮塔和炮管的旋转。 切换到事件图表中,首先通过“T…

单向散列函数【密码学】(一)

目录 一、前言:密码学有什么用? 二、单向散列函数 1、单向函数 2、散列函数 3、单向散列函数 三、怎么解决完整性问题 四、如何设置合适的安全强度 一、前言:密码学有什么用? 二、单向散列函数 单向散列函数就是用来解决…

article-6-pss 并联六自由度机构轨迹规划

建模 ** [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-djltxj90-1687070335773)(data:image/svgxml;utf8, )] ** 程序如下: % clc % clear all % function []PSS1(XP,YP,ZP) tic %%%%%鍒濆浣嶇疆鐨勪綅濮?%%%%% % XP 0; %鍔ㄥ钩鍙…

存储笔记6 SAN

SAN(Storage Area Networks) SAN 优势 benefitsSAN 组件 componentsSAN连接选项 connective optionsFC协议 FC寻址 protocol addressing\FC拓扑 topologie SAN优缺点 光纤通道 fibre channel SAN组件 FC三种互联 FC端口类型 fabric 企业需要和科技…

RFID期末复习总结

一.概念部分 1.基础概念 射频识别无线电频率识别RFID 应答器:存放识别信息的电子数据载体 阅读器:将识别信息从应答器中读出(还可以写入数据) 应答器是统称,在各种专业场合有专业名字,比如射频卡&#…

pikachu靶场-PHP反序列化

在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数。 序列化serialize() 序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象: class S{public $test"pikachu";}$snew S(); //创建一个对象serialize($s); //…

FPGA时序约束--进阶篇(主时钟约束)

在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。 本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。 一、主时…

一文详解!接口测试(http与rpc)总结

目录 前言: 一、了解一下HTTP与RPC 二、HTTP接口测试 三、RPC接口测试 四、接口测试用例设计 五、测试思路总结 前言: 在接口测试方面,常见的接口类型有HTTP接口和RPC接口。这两者的测试方法略有不同,在测试前需要进行技术选…

[INFO] [copilotIgnore] inactive,github copilot没反应怎么解决

在使用github copilot的时候,插件不工作,后台出现了这种输出, 这种情况下就是它的激活出现了问题,如果账号的使用权没有问题的话,就将该插件disable之后再重新enable,重新观察输出,就会看到copi…

LAMP架构搭建实操

目录 一、LAMP架构概述 二、LAMP框架搭建 1.准备工作 2.部署apache 3.部署mysql 4.部署php 三、部署BBS论坛 一、LAMP架构概述 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用…

win11系统提示msvcp140.dll丢失的三个解决方法,简单实用

Win11系统在运行photoshop或其他软件,游戏的时候,电脑提示“找不到msvcp140.dll”,“msvcp140.dll丢失”,“无法定位输入点msvcp140.dll”等问题,都是由于Windows11系统中的msvcp140.dll文件丢失或者损坏了。 问题场景…

数据结构 串

串 术语概念 在数据结构中,串(String)是由零个或多个字符组成的有限序列。它是一种常见的数据类型,常用于表示文本、字符串和符号序列等信息。串可以包含任意字符,包括字母、数字、符号以及空格等。 主串&#xff08…

CANDENCE : 如何绘制元器件

如何绘制元器件 绘制元器件之前先新建一个原理图库。 step1:打开某一个原理图工程 step2:在该工程系下新建一个库文件,如下图: 新建完成,如下图: 右键点击保存:save。 命名并保存,保存的位置自己决定 …

AI - stable-diffusion 艺术化二维码

系列文章: 《AI - stable-diffusion(AI 绘画)的搭建与使用》《AI - AI 绘画的精准控图(ControlNet)》 一、介绍 近日,AI 绘画(stable-diffusion)用来艺术化二维码算是比较火热的事了,这个 idea 是由国人用 Checkpoi…

Spring Security 实战篇

文章目录 前言内存版(memory)数据库库版(jdbc)自定义登录 - 单体(custom-login-single)自定义登录 - 前后分离会话一致性方案方案一方案二方案三为什么不用JWT 登录改json方式登录(custom-login-json)认证密码加密登录&#xff08…