iframe标签存取token的问题
需求:
在a项目中嵌套b项目的b1页面,使用iframe 实现页面嵌套,但是token不共享的情况下如何存取token 正常访问B1页面。
实现:
后台提供不需要输入用户名密码的接口,跑定时任务可以正常获取token。但是iframe 无法正常使用get/setcookie 的方式存取token。只能改变思路使用
sessionStorage的setItem/getItem 方法。
代码:
/** 设置缓存 **/ export function sessionSetItem(name, data) { window.sessionStorage.setItem(name, data) } /** 获取缓存 **/ export function sessionGetItem(data) { return window.sessionStorage.getItem(data); } /** 删除缓存 **/ export function sessionRemoveItem(data) { window.sessionStorage.removeItem(data) } /** 删除全部缓存 **/ export function sessionRemoveItemAll() { window.sessionStorage.clear() }
request.js文件引入上述方法
import {
delCookie,
getCookie,
setCookie,
sessionRemoveItem,
sessionGetItem
} from "./index.js";
并设置config 请求头的值
axios.interceptors.request.use( config => { //qs 系列化参数 if (!config.noLoading) { Vue.prototype.loadingCount++; Vue.prototype.nowloading(); } else if (Vue.prototype.loadingCount != 0) { Vue.prototype.loadingCount++; } if (config.contentType == 'application/json;charset=utf-8') { config.data = JSON.stringify(config.data) } else if (config.contentType == 'multipart/form-data;charset=utf-8') { config.data.append('token', getCookie('apToken')) } else { config.data = qs.stringify(config.data); } if (config.contentType) { config.headers['Content-Type'] = config.contentType; } //增加header参数(用户中心网关拦截) config.headers['btoken'] = getCookie('apToken') ? getCookie('apToken') : sessionGetItem('apSessionToken');return config; }, error => { return Promise.reject(error); } );
在b1页面定义获取token的方法,并用session存储即可。
// 获取token getTokenMsg(){ this.$get('请求接口路径').then(res=>{ if(res.code == '200'){ sessionSetItem('apSessionToken',res.data); console.log('111',sessionGetItem('apSessionToken')+','+res.data); this.handleSelectClick();//直接调用查询接口 } }) },
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本