通过iframe嵌套的不同域名的页面之间处理cookie存储失败的问题——js技能提升

最近同事在写mvc的后台管理系统,通过iframe实现不同域名的页面的嵌套。

但是有个问题,就是从父页面打开iframe的子页面时,需要登录子页面,此时需要将子页面登录后的token存储到子页面的cookie中,方便子页面的其他接口可以获取到token,并将token添加到接口的headers中。

但是这就遇到了一个问题:【不同域名iframe嵌套时,】

网上提供的方法比较多的就是通过postmessage的方式来处理:

在这里插入图片描述
这种方法的步骤是:父页面进行子页面的登录操作,拿到cookie后,通过postMessage传递到子页面,并通过document.cookie=xxx的方式存储到子页面中。这样子页面的接口就可以使用cookie.get的方式拿到token了。

如果我这边的操作步骤是:父页面直接iframe嵌套子页面,然后在子页面上进行登录操作。那么上面的postMessage的方式就不成立了。

此时可以通过子页面登录后,存储session的方式来处理。

session与其他存储的区别

在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/bigcarp/article/details/136249943

最后的实现方式是:通过session的方式来实现嵌套后子页面token的存储,这样就实现了最终的效果了。

经过测试:session和localstorage都是可以i实现的。就cookie不可以。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何理解React State不可变性的原则

React 中的状态(State)不可变性原则是指一旦创建了组件的状态,就不能直接修改状态的值,而是应该通过 setState 方法来更新状态。这个原则的核心思想是保持状态的不可变性,即不直接修改原始状态值,而是创建一…

SpringBoot+Session+redis实现分布式登录

SpringBootSessionRedis实现分布式登录功能实现 文章目录 目录 文章目录 前言 一、引库 二、修改配置文件 三、使用 四、解决乱码问题 1.引库 2.配置redis序列化 3.配置Session-Redis序列化 前言 这里简单介绍一下,如果你想多台机器部署你的项目的话,在…

EasySwoole 微服务注册中心

目录 EasySwoole 中,使用 Redis 作为服务注册中心 服务注册中心来注册服务 1. 用户登录与注册服务 2. 设备初始化服务 3. 广告与推广服务 以下是一些推荐的微服务监控工具和方法: EasySwoole 默认的微服务注册中心是通过 UDP 广播加上自定义进程定…

Maven的常用命令(面试篇之Maven)

我在写项目时,使用Maven的插件的命令来进行打包等,却发现报错误了,虽然解决了, 但借此机会来总结一下Maven的常用命令: 这些插件都有着自己的命令,虽然,我们可以简化的使用一些idea中的方便的按键: 但 , 一个程序员的功力深浅就在这些细节末尾处: 在Maven中,插件是…

形态学操作腐蚀(Erosion)和膨胀(Dilation)

在OpenCV中,腐蚀(Erosion)和膨胀(Dilation)属于形态学(morphological)操作。形态学是一种处理图像中结构的方法,通常用于处理二值图像。腐蚀和膨胀是最基本的形态学操作,…

【MySQL进阶之路 | 高级篇】范式概述与第一范式

1. 范式简介 在关系型数据库中,关于数据表的设计的基本原则,规则就称为范式。可以理解为,一张数据表的设计结果需要满足的某种设计标准的级别。要想设计一个结构合理的关系型数据库,必须满足一定的范式。 范式的英文名是Normal …

OpenHarmony 入门——ArkUI 自定义组件之间的状态装饰器小结(一)

文章大纲 引言一、状态管理概述二、基本术语三、状态装饰器总览 引言 前面说了ArkTS 是在TypeScript基础上结合ArkUI框架扩展定制的,状态管理中的各种装饰器就是扩展的功能之一,可以让开发者通过声明式UI快速高效实现组件之间的数据同步,至于…

Leetcode之string

目录 前言1. 字符串相加2. 仅仅反转字母3. 字符串中的第一个唯一字符4. 字符串最后一个单词的长度5. 验证回文串6. 反转字符串Ⅱ7. 反转字符串的单词Ⅲ8. 字符串相乘9. 打印日期 前言 本篇整理了一些关于string类题目的练习, 希望能够学以巩固. 博客主页: 酷酷学!!! 点击关注…

转置卷积方法

一、定义 1、卷积神经网络层通常会减少(或保持不变)采样输入图像的空间维度(高和宽),另一种类型的卷积神经网络层,它可以增加上采样中间层特征图的空间维度, 用于逆转下采样导致的空间尺寸减小…

【BES2500x系列 -- RTX5操作系统】系统启动流程 -- boot loader概念讲解 --(九)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

【AI实例之智能分析系统】概览

一、介绍 界面:聊天式 流程架构:自然语言输入,对接大模型,生成查询语句,查询数据库,根据数据生成图表。 用到的技术:大模型,prompt,streamlit,python 还在…

PyTorch 中的一个函数:torch.pow

torch.pow 介绍 torch.pow 是 PyTorch 中的一个函数,用于计算张量(Tensor)的幂次方。这个函数接受两个输入参数:底数(base)和指数(exponent),然后返回底数的指数次幂的结…

.NET 情报 | 分析某云系统添加管理员漏洞

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【计算机毕业设计】881音乐网站

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

跟代码执行流程,读Megatron源码(二)训练入口pretrain_gpt.py

Megatron-LM默认支持GPT、T5、BERT等多个常见模型的预训练,当下大模型流行,故以pretrain_gpt.py为例做源码的走读。 一. 启动pretrain_gpt.py pretrain_gpt.py为GPT类模型的训练入口,它通过命令行形式被调用,其精确执行路径位于M…

计算机网络通信基础概念

目录 1、网络通信的本质 2、网络的发展 3、网络协议(TCP\IP协议) 3.1 协议实现通信的原理 3.2 协议的具体概念 3.3 协议的模型 4、数据链路层 5、网络协议栈和操作系统的关系 6、网络协议通信过程 6.1 通信过程的封装与解包 7、以太网通信…

Spring MVC的高级功能——文件上传和下载(一)文件上传

一、文件上传表单的满足条件 大多数文件上传都是通过表单形式提交给后台服务器,因此,要实现文件上传功能,就需要提供一个文件上传的表单,并且该表单必须满足以下3个条件。 • form表单的method属性设置为post。 • form表单…

Ai绘画变现的14种途径 学习Stablediffusion midjourney用途

AIGC,一个在当代社会中不可忽视的词汇,指的是利用人工智能技术生成创作内容。近年来,全球范围内涌现出50个热门的AI工具,其中,以140亿次访问量雄踞榜首的“GBT”,无疑是AI领域的领头羊。在这些工具中&#…

Vue全家桶 - pinia 的理解和学习2(Pinia 核心概念的插件、组件外的 Store 和 服务器渲染(SSR))

Pinia(Vue 的专属状态管理库) Vue全家桶 - pinia 的理解和学习1(Pinia 核心概念的 Store、State、Getter、Action) https://blog.csdn.net/weixin_54092687/article/details/140520675 插件 由于有了底层 API 的支持&#xff0c…

gradle 构建项目添加版本信息

gradle 构建项目添加版本信息 build.gradle 配置文件 bootJar {manifest {attributes(Project-Name: project.name,Project-Version: project.version,"project-Vendor": "XXX Corp","Built-By": "Gradle ${gradle.gradleVersion}",&…