当前位置: 首页 > news >正文

Vue项目通过内嵌iframe访问另一个vue页面,获取token适配后端鉴权(以内嵌若依项目举例)

1. 改造子Vue项目进行适配(ruoyi举例)

(1) 在路由文件添加需要被外链的vue页面配置

// 若依项目的话是 router/index.js文件
{
    path: '/contrast',
    component: () => import('@/views/contrast/index'),
    hidden: true
},

(2) 开放白名单

// 若依项目的话是 permission.js 文件
const whiteList = ['/login', '/register','/contrast']

(3) 在被外链的页面获取父项目传递的token

created() {
    var query = this.$route.query;
    if (query.token) {
      // 塞入外部链接传入的token
      localStorage.setItem('externalToken', query.token)
      // 若依使用的Cookies插件在内嵌获取值时获取不到改用 localStorage
      // setToken(query.token)
    }
  },

(4) 改造request请求的token封装

// 若依项目的话是 request.js文件
let externalToken = localStorage.getItem('externalToken');
if (externalToken) {
	config.headers['Authorization'] = externalToken
}

添加位置
在这里插入图片描述

2. 父Vue项目配置一个菜单指向一个Vue页面

<template>
  <div v-if="src">
    <iframe :src="src" width="100%" height="600px">

    </iframe>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        src: '',
        // 子vue项目的router路径
        url: 'http://127.0.0.1/contrast',
        token: ''
      }
    },
    created() {
      this.src = `${this.url}"?token=${this.token}`
    }
  }
</script>

<style scoped lang="scss">

</style>

相关文章:

  • uniapp 微信小程序 升级 uniad插件版本号
  • 量子状态优化:探索量子计算的新维度
  • Grafana
  • Redis maven项目 jedis 客户端操作(一)
  • 《Python实战进阶》No13: NumPy 数组操作与性能优化
  • 点云软件VeloView开发环境搭建与编译
  • ubuntu22.04机器人开发环境配置
  • 使用Wireshark截取并解密摄像头画面
  • golang从入门到做牛马:第三篇-Go程序的“骨骼架构”
  • js 判断当前时间是属于早上、上午 、中午、下午 或者晚上
  • 5人3小时复刻Manus?开源OpenManus项目全解剖,我的DeepSeek股票报告这样诞生
  • SAP DOI EXCEL宏的使用
  • 面试基础---Spring Cloud 微服务架构中的网关:Spring Cloud Gateway 与 Zuul 深度解析
  • 蓝耘智算平台部署deepseek-深度学习
  • 计算机毕业设计SpringBoot+Vue.js华府便利店信息管理系统(源码+文档+PPT+讲解)
  • 权限系统基础知识笔记
  • SpringBoot整合Rabbitmq
  • 第8章 访问管理(网络安全防御实战--蓝军武器库)
  • 顶点着色器和片段着色器
  • HarmonyOS 应用程序包结构 (发布态)
  • 做app推广上哪些网站吗/郑州专业seo推荐
  • 南昌手机网站制作/百度网站提交了多久收录
  • php网站开发需要学哪些/凡科建站
  • 自己没有产品/seo教程书籍
  • b2b网站是什么/搜狗推广
  • wordpress网站公告/北京seo学校