angular项目是一个大的平台,架构是单页应用模式,平台每一个菜单页是一个angular项目。
vue老的项目导入为了避免麻烦,采用了一个项目的模式,打一个统一的包,build后上传MobaXterm_Personal 软件nginx目录html目录下对应的项目文件夹中。
因为引入的vue项目就是angular项目的一个菜单,所以是没有登录的。那么问题来了,怎么在不登录的状态下获取到token,还有点击的是哪个菜单,再进行路由跳转呢?angular平台点击任何菜单都是一个地址。
1.在router.js中进行拦截
const oldUrl = to.fullPath
localStorage.setItem('oldUrl', oldUrl)
这个url是angular项目的url,可以转义出一个code
通过这个code发起请求获取token
2.需要自己封装一个axios
service.interceptors.request.use(config => {}
在每次请求的时候 获取token
return getTokenServer().then(newToken => {
axiosInstanceOffice.defaults.headers['mti-authentication-user'] = newToken;
return getTokenServer().then(newToken => { 这么写避免了页面请求比axios快的问题