如何在Next-Auth中间件匹配器正则中添加根路径/至排除列表?
解决方案
你只需要在负向预查的排除列表中加入^$(匹配空字符串),就能把根路径/也排除在外。修改后的代码如下:
export const config = { matcher: ["/((?!register|login|^$).*)"] };
原理说明
- 原正则
/((?!register|login).*)的作用是:匹配所有不是以register或login开头的路径,从而对这些路径强制身份验证。 - 加入
^$后,正则会额外排除括号内为空字符串的情况——而根路径/对应的括号捕获内容就是空字符串,因此会被排除在强制验证之外。
这样修改后,/、/register、/login这三个路径都不会触发中间件的身份验证,其他所有路径都会强制要求用户登录。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

