Next-Auth Middleware matcher regex

gywdnpxw  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(222)

在next-auth中间件场景中,您可以使用匹配器在某些路径上强制执行auth。下面是一个matcher regex的例子,它在所有路由 * 上强制auth,除了 * /register/login

export const config = {
  matcher: ["/((?!register|login).*)"],
};

我想允许将根页面(位于/)添加到此列表中,但不知道如何使用RegExp语法执行此操作。

hivapdat

hivapdat1#

简单地添加$作为正前瞻的另一个替代方案:

/                     # Literal '/', followed by
(?!register|login|$)  # something that is neither 'register', 'login' nor the end of string.

这匹配:

/foobar

但不是:

/register
/login
/
/register-foobar
/loginbarfoo

试试看on regex101.com
为了更加安全,您可以使用:

/                     # Literal '/', followed by 
(?!                   # something that is neither
  (?:register|login)? # 'register', nor 'login', optionally
  $                   # right before the end of string.
)                     #

这匹配:

/foobar
/register-foobar
/loginbarfoo

但不是:

/register
/login
/

试试on regex101.com

相关问题