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

news/2024/5/18 13:43:03 标签: ssh, cors, 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.niftyadmin.cn/n/5170767.html

相关文章

找到所有数组中消失的数字(java)

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果. 输入:nums [4,3,2,7,8,2,3,1] 输出:[5,6] 输入:nums [1,1] …

什么是UV贴图?

UV 是与几何图形的顶点信息相对应的二维纹理坐标。UV 至关重要,因为它们提供了表面网格与图像纹理如何应用于该表面之间的联系。它们基本上是控制纹理上哪些像素对应于 3D 网格上的哪个顶点的标记点。它们在雕刻中也很重要。 为什么UV映射很重要? 默认情…

手写C++ 实现链表的反转、删除、合并

目录 一、手写List成员方法 1.1 打印链表 1.2 删除链表节点 1.3 链表中倒数第k个节点 1.4 反转链表 1.5 合并两个排序链表 二、完整代码 一、C实现链表成员方法 在上一篇博客《手写链表C》,实现了基本的List类。在面试中,经常被问到List如何反转、…

【OpenHarmony内核】Harmony内核之互斥锁

文章目录 前言一、互斥锁是什么?二、OpenHarmony关于互斥锁的函数2.1 osMutexNew 创建互斥锁osMutexAttr_t 类型详解2.2 osMutexGetName2.3 osMutexAcquire 尝试获取锁2.4 osMutexRelease 释放锁2.5 osMutexGetOwner 获取拥有互斥锁的线程id2.6 osMutexDelete 删除互斥锁对象三…

如果有一款专门用于3D纹理贴图的工具,大家会愿意用吗?

专业建模软件通常具有丰富的功能和工具,能够帮助用户进行三维建模、模拟分析、可视化呈现等多个方面的工作,几乎可满足用户所有的建模相关工作。 1、专业建模软件的使用门槛 学习曲线陡峭:专业建模软件通常需要较长时间来学习和掌握&#xf…

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言: 有关Clickhouse的前置知识详见: 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎(即表的类型)决定了&…

python3.8及以上版本绑定gdal库的一个注意事项

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> gdal和python绑定参考文章:windows环境下python和gdal绑定方法   值得注意的是绑定python3.8及以上版本后在python程序中初始化gdal库时会出…

151. 反转字符串中的单词

151. 反转字符串中的单词 原题链接:完成情况:解题思路:参考代码:错误经验吸取 原题链接: 151. 反转字符串中的单词 https://leetcode.cn/problems/reverse-words-in-a-string/description/ 完成情况: 解…