cas单点登录 前端步骤流程

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();
  }
});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端CAS单点登录是一种安全可靠的身份认证机制,通过在Web应用中添加认证模块实现用户认证、授权和会话管理,为用户提供无缝的单点登录体验。CAS(Central Authentication Service)是一个开源的单点登录协议,由耶鲁大学开发,其主要功能是对用户身份进行认证和授权,并提供了会话管理等基本功能,支持多种实现方式和协议。若采用前端CAS单点登录,可以提高Web应用的安全性和用户体验,使用户无需频繁地输入用户名和密码,有效减少了密码泄露和重复登录的风险。 实现方式主要有以下几种: 1.使用官方提供的CAS客户端集成到Web应用程序中。此方法可以使用官方提供的一些CAS客户端库或框架来实现CAS单点登录,如Jasig CAS Client for Java、Spring Security CAS、PHP CAS等。需要在应用配置文件中指定CAS服务器地址和端口等信息,以便应用程序可以与CAS服务器进行通信,完成身份认证和会话管理等功能。 2.直接在前端页面中调用CAS API实现单点登录。此方法可以使用CAS提供的JavaScript API来实现CAS单点登录。需要在前端页面中引用CAS提供的JavaScript库,并编写相关代码来调用API,完成CAS单点登录和会话管理等功能。此方法可以在Web应用程序中无需增加额外的代码,减少了维护成本和性能开销。 若依前端CAS单点登录,可以通过在应用程序中集成CAS客户端或直接使用CAS API来实现单点登录。此方法可以提高应用程序的用户体验和安全性,减少用户输入密码的次数,提高身份认证的可靠性和安全性。同时,也需要注意防范常见的安全风险,如会话劫持、跨站脚本等攻击。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值