vuejs学习之路 接入cas认证--登录(五)

基于安全考虑,公司所有系统都要求接入cas。

在main.js文件中,增加如下代码:

第一段代码主要是为了获取cas返回的用户名,每个公司可能都不一样。

第二段代码主要是路由跳转,如果已经登陆获取到token,跳转到下一页,没有token,清一下缓存,然后跳转到cas登录页面。

function GetRequest() {
  let url = location.search
  //获取url中"?"符后的字串
  let theRequest = new Object()
  if (url.indexOf('?') != -1) {
    let str = url.substr(1)
    let strs = str.split('&')
    for (let i = 0; i < strs.length; i++) {
      theRequest[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1])
    }
  }
  return theRequest
}

const login_url = 'http://your.cas.url'
const host = escape(window.location.host)

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
  let token = Cookies.get('cas_jwt_token')
  if (typeof (token) == 'undefined') {
    let infomation = GetRequest()
    let token = infomation.jwt
    let username = infomation.username
    if (token) {
      Cookies.set('username', username, { expires: 1 })
      let url = location.search
      history.replaceState(url, '', '/#/index')
    } else {
      Cookies.remove('username')
      window.location.href = login_url + '?service=http://' + host + '%3fjwt%3dtrue'
    }
  }
  next()
})

 

你可能感兴趣的:(vuejs学习之路 接入cas认证--登录(五))