Cross-Origin跨站问题详解(跨站请求、跨站cookie)

背景:我部署frontend和backend到两个不同的docker容器,前端路径为http://localhost:3000,后端路径为http://localhost:4000。我设置了用户登录功能,并使用cookie进行session管理。当我的前端登录时,创建了一个session,而登录完成时个人信息被保存到session中,以后访问不同页面时只需要检查是否logged in即可,而这个logged in有一个专门的api

问题:用户登录时backend创建了一个session,而用户每次请求isLoggedIn API时,创建的是新的session,意味着一开始登录时创建的session根本没有被使用,导致用户不管访问什么页面,都被要求重新登录

原因:当然是cookie没有设置好,具体问题可以打开F12,查看网络,找到登录时请求的API,找到里面Set-Cookie的地方,比如下图
在这里插入图片描述

可以看到,这个cookie是接收到了,但旁边有个黄色警告
在这里插入图片描述
意味着在backend配置session时,需要设置sameSite为none,并且需要secure,即https协议而不是http

我已经配置了CORS,因此允许跨站请求
在这里插入图片描述
也配置了session
在这里插入图片描述
我设置了same site为none,这样就允许cross origin的cookie,但是cross origin的cookie还要求secure,不仅仅是要把secure改成true,还要使用https,不然cookie会被浏览器自动block,但我现在正在开发,并没有到上线的程度,所以还不想申请SSL/STL证书,但是还没有找到如何让chrome不要使用这么strict的policy。

目前的办法是换一个浏览器,比如星愿,亲测可行。


不过问题来了,为什么我的前后端都是localhost,却还是被当作所谓的cross-origin跨站?这是因为这个所谓的cross origin,不仅仅是看domain域名,还有使用的protocol(如http),以及使用的端口,而我的前后端端口不一样,因此同样被当作cross-origin。所以需要配置CORS以及在处理用户session和cookie时想办法先绕过这个问题,等网站上线时再去配置HTTPS

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

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

相关文章

【Java 进阶篇】Java与JQuery选择器:解锁前端开发的魔法大门

在前端开发的世界中,选择器是我们与HTML文档进行互动的钥匙,而Java和JQuery则为我们提供了强大的工具,使得前端开发不再是一个艰深的谜题。本篇博客将围绕Java与JQuery选择器展开,深入解析选择器的奥秘,为你打开前端开…

nvdiffrast的MeshRenderer

获取输入: vertex: 顶点坐标,大小为(B, N, 3)tri: 面片索引,大小为(B, M, 3) 或 (M, 3)feat(可选): 顶点features,大小为(B, C)计算NDC(标准设备坐标)投影矩阵,用于投影到图像平面。将顶点坐标转换到同质坐标(加1维,方便后续运算)。用NDC投影矩阵将顶点坐标转换到NDC空间。创建…

C++ 模板保姆级详解——template<class T>(什么是模板?模板分哪几类?模板如何应用?)

目录 一、前言 二、 什么是C模板 💦泛型编程的思想 💦C模板的分类 三、函数模板 💦函数模板概念 💦函数模板格式 💦函数模板的原理 💦函数模板的实例化 🍎隐式实例化 🍉显式实…

21. 合并两个有序链表 --力扣 --JAVA

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 判断特殊情况,如:两个列表中其中一个为空;创建一个初始节点用于返回;通过while循环来逐个遍历链表&#xff0…

手把手教你 RT-DETR 添加注意力机制 | 一次性添加 20+ 种!

RT-DETR 添加注意力机制 ! 本来想多发一些自己的个人魔改,但是有些同学还是需要一些基础的注意力改进,那么大家可以先用这篇文章的代码,我同样给大家提供了很多的模板。 文章目录 RT-DETR 添加注意力机制 !注意力机制介绍注意力机制的分类1. SE 注意力模块1.1 原理1.2 代码…

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点: TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定,脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

面向萌新的技术博客入门指南

Python之禅 在Python的解释器中隐藏一个彩蛋,输入import this就会返回19条Python之禅,具体如下: import this The Zen of Python, by Tim Peters Python之禅 ,by Tim Peters Beautiful is better than ugly. 优美好于丑陋&…

clouldcompare工具使用

文章目录 1.界面1.1 布局1.3 视觉显示方向1.4 放大镜1.5 建立旋转中心2.快速入门2.1 剪裁2.2 多点云拼接 1.界面 1.1 布局 参考:https://blog.csdn.net/lovely_yoshino/article/details/129595201 1.3 视觉显示方向 1.4 放大镜 1.5 建立旋转中心 2.快速入门 2.1 …

开源:特殊的垄断

免责声明:本博客旨在分享我对开源策略的理解和体会,不代表任何组织或机构的立场或观点,也不构成任何商业或投资的建议或担保。本博客的内容可能存在错误或遗漏,也可能随着时间的推移而变得过时或不适用。请在使用或依赖本博客的内…

open clip论文阅读摘要

看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…

记录--vue3 setup 中国省市区三级联动options最简洁写法,无需任何库

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 在写页面的时候,发现表单里面有一个省市区的 options 组件要写,因为表单很多地方都会用到这个地址选择,我便以为很简单嘛。 虽然很简单的一个功能,但是网…

如何使用ArcGIS Pro制作个性三维地形图

制作三维地图制作的多了,想着能不能换个“口味”,恰好看见制作六边形蜂窝图,灵光一闪,想着将二者结合,将平滑的三维地形图改成柱状图,从结果来看还可以,这里将制作方法分享给大家,希…

Leetcode2833. 距离原点最远的点

Every day a Leetcode 题目来源:2833. 距离原点最远的点 解法1:贪心 要使得到达的距离原点最远的点,就看 left 和 right 谁大,将 left 和 right 作为矢量相加,再往同方向加上 underline。 答案即为 abs(left - rig…

Windows 安装 Maven

目录 安装 JDK下载 Maven配置阿里云镜像配置环境变量 安装 JDK Windows 安装 JDK 下载 Maven 下载地址:https://maven.apache.org/download.cgi 下载 apache-maven-3.9.5-bin.zip 到本地解压到 D:\Software\apache-maven-3.9.5 配置阿里云镜像 配置阿里云远程仓…

docker更改存储目录原因及方案

为什么一定要将docker的存储目录挂载到其他目录 docker在安装时默认存储目录在/var/lib/docker,而该目录是在系统盘下的。docker安装后,会使用各种各样的镜像,动辄几个G,那么如此多的镜像文件,装着装着系统盘就撑爆了…

Halcon WPF 开发学习笔记(4):Halcon 锚点坐标打印

文章目录 专栏前言锚点二次开发添加回调函数辅助Model类 下集预告 专栏 Halcon开发 博客专栏 WPF/HALCON机器视觉合集 前言 Halcon控件C#开发是我们必须掌握的,因为只是单纯的引用脚本灵活性过低,我们要拥有Halcon辅助开发的能力 锚点开发是我们常用的…

【笔记】结合P02项目——maven继承与聚合

maven的继承关系 P02项目大概是这个样子,下图展示的是其父工程 父工程配置了parent依赖springb-boot-starter-parent,子工程配置其parant为父工程 子工程引用common子工程 maven的版本锁定 管理子工程的版本号问题 父工程添加dependencyManageMent…

P6入门:项目初始化3-项目详情之记事本Notebook

前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…

机器学习——实践

目录 一、数据集划分 1、交叉验证 2、不平衡数据的处理 代价敏感学习 二、评价指标 三、正则化、偏差和方差 为什么要标准化/归一化? 过拟合的处理——Dropout 过拟合的处理——Early stopping 过拟合的处理——数据增强 偏差和方差 ​编辑 一、数据集划分…

设计模式案例(二)

系列文章目录 第一章 设计模式案例 (一) 第一章 设计模式案例 (二) 文章目录 系列文章目录前言一、责任链模式case 包 二、策略模式case 包 三、工厂模式case 包 前言 上一篇文章介绍了常用的几种设计模式和常用场景,便于对设计模式加深理解&#xff0…