360浏览器急速和兼容模式Cookie是共享的

背景

公司认证在使用ticket登录时,因为ticket在url里面登录后ticket已失效,此时切换兼容模式或者急速模式因为url没有变化,导致ticket二次使用,后端提示ticket已使用

解决办法

存入Cookie来查询一下ticket是否使用过,使用过直接常规登录即可,未使用传递ticket用静默登录。


function getTicket () {
  const ticket = getQueryString('ticket')
  if (ticket && !getCookie(ticket)) {
    setCookie(ticket, 'true', 1)
    return ticket
  } else {
    return ''
  }
}

function setCookie (cname, cvalue, exdays) {
  var d = new Date()
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000))
  var expires = 'expires=' + d.toGMTString()
  document.cookie = cname + '=' + cvalue + '; ' + expires
}

function getCookie (cname) {
  var name = cname + '='
  var ca = document.cookie.split(';')
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i].trim()
    if (c.indexOf(name) === 0) return c.substring(name.length, c.length)
  }
  return ''
}


知识点

  1. 360浏览器急速和兼容模式切换sessionStorage 和localStorage是不共享的
  2. Cookie是共享的切换的时候是能够读取到的
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容