[nextjs]路由拦截守卫踩坑

Next.js v14 App Router模式

next想实现类似vue这种路由拦截器,其实使用next.js自带的中间件就行了。
现在遇到一个问题是有些页面需要登录后才能访问,
比如

const needLoginRoutes = [/\/account/g, /\/deposit/g];...// 中间件里if (needLoginRoutes.some((reg) => reg.test(req.nextUrl.pathname)) && !req.cookies.has(TOKEN)) {return NextResponse.redirect(new URL(`${req.nextUrl.origin}/${lng}?type=login`));}

这里判断访问的路由是否在needLoginRoutes数组里及判断是否存在token
不存在则会重定向到首页去登陆;

这里一切都是正常工作的

直到我登录后获取到token并存放到cookies里

我再去访问needLoginRoutes匹配的路由,发现依然跳转到了登录窗口,尝试过几次都是这样(原谅我菜)
问题肯定是出现在middleware中间件上,通过调试发现这里的判断依然是false 读取不到请求头里cookie里的token,但是明明请求头里有token呢;
百思不得其姐~
或许是存在路由器缓存,如果手动刷新页面就不会拦截到了;

只能暂时先使用笨方法,在设置cookies后刷新页面,重新像服务器请求页面;

后来偶然间发现 useRouter 里有一个api是专门用来刷新服务器的refresh
直接使用refresh刷新状态即可,不需要手动刷新页面,完美解决!

还是要多看文档呢

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

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

相关文章

IO系列(十) -TCP 滑动窗口原理解析

一、摘要 之前在知乎上分享网络编程知识文章的时候,有个网友私信给我留言了一条“能不能写一篇关于 TCP 滑动窗口原理的文章”。 当时没有立即回复,经过查询多方资料,发现这个 TCP 真的非常非常的复杂,就像一个清澈的小沟&#…

Compose 中的 touch 事件

在 Android 原生开发中对 View 的 touch 事件处理有这么几种方式: setOnClickListener:监听点击事件setOnTouchListener:监听 touch 事件自定义View:覆写 dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent 等方法 方式…

【PostgreSQL】 JSON数组 提取根据索引提取对象和字段

在 PostgreSQL 中处理 JSON 数组:按索引提取对象和字段 在现代应用程序中,JSON 数据格式因其灵活性和可读性广泛应用。PostgreSQL 作为一个强大的关系型数据库管理系统,提供了强大的 JSON 数据类型和函数支持,使得在数据库中存储…

SD-WAN:跨国公司的组网方式

在经济全球化的时代,跨国企业需要与国外客户、供应商和合作伙伴进行快速的互动和沟通,并且会在国外建立办公指点,传统的WAN(大面积网络)架构已不能满足快速、可靠、安全的网络通信需求,可以采用SD-WAN的方式…

怎么将3D模型转换立面图---模大狮模型网

在建筑设计、室内设计以及产品建模等领域,经常需要将3D模型转换为立面图以进行展示、分析或交流。立面图能够清晰地呈现物体的外观和结构,是设计和施工中不可或缺的一部分。 一、导出3D模型 首先,需要将3D模型导出为CAD软件能够识别的格式。…

第十九节:带你梳理Vue2: 父组件向子组件传参(props传参)

1. 组件嵌套 1.1 组件的嵌套使用 之前有说过,Vue组件跟Vue实例是一样的,因此在Vue中一个组件中也可以定义并使用自己的局部组件,这就是组件的嵌套使用 例如:示例代码如下: <div id"app"><!-- 3. 使用组件 --><my-component></my-component&…

29-ESP32-S3-WIFI_Driver-00 STA模式扫描全部 AP

ESP32-S3 WIFI_Driver 引言 ESP32-S3是一款集成了Wi-Fi和蓝牙功能的芯片。关于WIFI的部分&#xff0c;其实内容比我想象的要多得多。所以通常来说&#xff0c;如果你想要编写自己的Wi-Fi应用程序&#xff0c;最快捷的方法就是先找一个类似的示例应用&#xff0c;然后将它的相…

VSCODE常用插件记录

重点提名&#xff1a; back & ForthBookmarksC/ChighlightSSH FS //SSH插件

JVM之垃圾判断的详细解析

垃圾判断 垃圾介绍 垃圾&#xff1a;如果一个或多个对象没有任何的引用指向它了&#xff0c;那么这个对象现在就是垃圾 作用&#xff1a;释放没用的对象&#xff0c;清除内存里的记录碎片&#xff0c;碎片整理将所占用的堆内存移到堆的一端&#xff0c;以便 JVM 将整理出的内…

三大主流框架

Web前端开发领域中&#xff0c;三大主流框架通常指的是&#xff1a; React&#xff1a;由Facebook开发的一个用于构建用户界面的JavaScript库。React以其组件化、声明式编程和虚拟DOM等特点而广受欢迎&#xff0c;能够高效地更新和渲染大型应用。 Vue.js&#xff1a;由尤雨溪创…

第3章 数据链路层

王道学习 考纲内容 &#xff08;一&#xff09;数据链路层的功能 &#xff08;二&#xff09;组帧 &#xff08;三&#xff09;差错控制 检错编码&#xff1b;纠错编码 &#xff08;四&#xff09;流量控制与可靠传输机制 流量控制、可靠传输与滑动窗口…

AcWing 1600:完全二叉树

【题目来源】https://www.acwing.com/problem/content/1602/【题目描述】 给定一个树&#xff0c;请你判断它是否是完全二叉树。【输入格式】 第一行包含整数 N&#xff0c;表示树的结点个数。 树的结点编号为 0∼N−1。 接下来 N 行&#xff0c;每行对应一个结点&#xff0c;并…

使用 Spring Boot 实现邮件发送功能

推荐一个AI网站&#xff0c;免费使用豆包AI模型&#xff0c;快去白嫖&#x1f449;海鲸AI SpringBoot——发送邮件 在现代应用程序中&#xff0c;发送邮件是一个常见的需求。本文将介绍如何使用 Spring Boot 发送邮件。我们将从新建一个 Spring Boot 项目开始&#xff0c;逐步…

3dmax渲染经常卡主?关掉光追即可流畅渲染

3ds Max是一款广泛应用于三维建模、动画和渲染的软件&#xff0c;它在影视、游戏、建筑可视化等领域具有重要地位。在3ds Max中&#xff0c;渲染技术的选择和应用直接影响到最终图像的质量和渲染效率。 但在实际使用过程中&#xff0c;由于3dsMax中有太多选项&#xff0c;很多…

# 解决 win11 连接共享打印机,报错 0x00000709 问题

解决 win11 连接共享打印机&#xff0c;报错 0x00000709 问题 一、问题描述&#xff1a; 当我们连接一台共享打印机&#xff0c;出现报错 0x00000709 时&#xff0c;这是由于本机注册表本配置 RPC 远程调用&#xff0c;我们需要对自己的电脑进行修改&#xff0c;而不是主机&a…

什么是 ISP 代理?

代理是路由互联网流量的中间服务器&#xff0c;通常分为三类&#xff1a;数据中心、住宅和 ISP。根据定义&#xff0c;ISP 代理隶属于互联网服务提供商&#xff0c;但实际上&#xff0c;更容易将它们视为数据中心和住宅代理的组合。 让我们仔细研究一下 ISP 代理&#xff0c;看…

国产操作系统上部署SVN版本控制系统

原文链接&#xff1a;国产操作系统上部署SVN版本控制系统 | 统信 | 麒麟 | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在国产操作系统上部署SVN版本控制系统的文章。SVN&#xff08;Subversion&#xff09;是一款广泛使用的版本控制系统&#xff0c;它…

【一步一步了解Java系列】:类与对象的联系

看到这句话的时候证明&#xff1a;此刻你我都在努力加油陌生人个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭 对…

真实故障分享,H3C ER3208G3-X路由器-双绞线一闪一停

六类非屏蔽双绞线 网线钳 如上图所示&#xff0c;2号线接到h3c路由器出现网线一闪一停&#xff0c;用对线器测试一到8芯能一一对应&#xff0c;无法上网。2号线接到h3c交换机能正常上网&#xff0c;难道是网线对568A 568B有要求&#xff1f; 解决方式&#xff1a;通过两端568…

一文讲清楚:如何做好建设工程项目管理?

在房地产开发中&#xff0c;作为项目负责人我目前的状况成了一个大管家&#xff0c;还要管理工程质量。上至各部门领导的关系维护&#xff0c;下到工人的吃喝拉撒都要我操心&#xff0c;还要没完没了的处理四邻纠纷和拆迁户的纠纷&#xff0c;每天都搞得很疲惫&#xff0c;如何…