路由拦截
路由拦截
目的
通常我们需要对保护的页面进行路由拦截,即未登录的用户不能访问我们保护起来的路由,
当用户访问受保护的路由时,会自动重定向到 signIn 页面,基于这样的需求,我们需要实现路由拦截功能。
实现方案
- 使用 Next-Auth
难度较高,官网:https://next-auth.js.org/
- 使用 Next 的
middleware
功能
使用 next 自带的 middleware
实现路由拦截功能,即在 /src 下创建 middleware.ts
文件
-
在 matcher 数组中添加要拦截的路由
-
'/protectd/:path*' 表示 /protectd/ 下的所有路由都会拦截
关于 middleware
的使用可以参考 https://nextjs.org/docs/app/building-your-application/routing/middleware