如何实现跨项目共享token

本文介绍了在域名相同的两个项目中实现token共享的解决方案。首先获取host内容,然后通过编写cookie的保存和获取方法,实现在不同项目间的token有效传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景

由于旧项目的改版变动比较大,需要新开一个项目,就需要用两个项目共享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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值