项目场景
由于旧项目的改版变动比较大,需要新开一个项目,就需要用两个项目共享token
一, 由于域名是相同的,先获取host内容
二,编写cookie 保存和获取的方法
const Cookie = {
set (name, value, days) {
var domain, domainParts, date, expires, host
if (days) {
date = new Date()
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000))
expires = '; expires=' + date.toGMTString()
} else {
expires = ''
}
host = location.host
if (host.split('.').length === 1) {
document.cookie = name + '=' + value + expires + '; path=/'
} else {
domainParts = host.split('.')
domainParts.shift()
domain = '.' + domainParts.join('.')
document.cookie = name + '=' + value + expires + '; path=/; domain=' + domain
if (Cookie.get(name) === null || Cookie.get(name) !== value) {
domain = '.' + host
document.cookie = name + '=' + value + expires + '; path=/; domain=' + domain
}
}
},
get (name) {
var nameEQ = name + '='
var ca = document.cookie.split(';')
for (var i = 0; i < ca.length; i++) {
var c = ca[i]
while (c.charAt(0) === ' ') {
c = c.substring(1, c.length)
}
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length)
}
return null
},
erase (name) {
Cookie.set(name, '', -1)
}
}
三,运用该方法
// 1 获取cookie 中的 token
import getCookie from '@/utils/cookie' // 引入写的cookie 方法
// 判断是否有cookie, 将cookie设置在请求头上
const cookieToken = getCookie.Cookie.get('Access-Token')
if (cookieToken) {
config.headers['Authorization'] = 'Bearer ' + cookieToken
config.headers['Content-Type'] = 'application/json'
}
// 2,设置cookie 共享
setCookie.Cookie.set('Access-Token', res.data.token)