reactjs Nextjs -为捕获所有路由添加auth访问权限的正确方法

svmlkihl  于 2023-01-08  发布在  React
关注(0)|答案(1)|浏览(441)

我不确定这里使用的术语“catch all”是否正确,但是如何阻止对页面路由(而不是API)的访问,包括第一个slug之后的任何slug。
即,允许所有身份验证用户访问,但不允许公共访问:/帐户/用户ID
即,仅允许登录会话的用户访问:/帐户/用户ID/操作
也就是说,仍然只允许已登录会话的用户访问:/帐户/用户ID/操作/创建
我能想到的唯一方法是通过useRouter检测路由器路径,然后添加特定的 Package 器组件,其中包含/account/userid/周围的会话逻辑和/account/userid/actions周围的不同会话逻辑。
这是做这件事的正确/最好的方法吗?

zbdgwd5y

zbdgwd5y1#

你可以配置一个middleware.ts文件,定义你希望用户访问哪些路由,更多关于nextjs中间件的信息可以在https://nextjs.org/docs/advanced-features/middleware中找到,至于通过中间件对每个路由进行授权,你可以在https://next-auth.js.org/configuration/nextjs中找到更多信息

相关问题