You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next Auth中间件重定向无限循环问题求助

Next Auth中间件无限循环到默认登录页的解决办法

问题根源

你直接导出了Next Auth的默认中间件,它会默认保护所有路由,包括你配置的自定义登录页/auth/signin。当未认证用户被重定向到该登录页时,中间件会再次判定用户未认证,触发重定向逻辑,最终导致无限循环,甚至 fallback 到Next Auth的默认登录页。

解决方案

1. 自定义中间件,排除登录相关路径

替换你当前的middleware.ts内容,使用withAuth并指定需要保护的路由,排除登录页和Next Auth的API路由:

import { withAuth } from "next-auth/middleware"

export default withAuth({
  pages: {
    signIn: "/auth/signin",
  },
})

// 配置需要保护的路由,排除/auth和/api/auth路径
export const config = {
  matcher: ["/((?!auth|api/auth).*)"],
}

这段代码仅保护除/auth(自定义登录页所在路径)和/api/auth(Next Auth内置认证接口)之外的所有路由,避免登录页被中间件拦截。

2. 确保自定义登录页正常触发登录流程

你的/auth/signin页面需要正确调用Next Auth的登录方法,示例如下:

import { signIn } from "next-auth/react"

export default function SignInPage() {
  return (
    <div>
      <h1>登录</h1>
      <button onClick={() => signIn("discord")}>通过Discord登录</button>
    </div>
  )
}

确保登录页能正常触发第三方登录流程,而非被中间件保护导致无法访问。

额外检查项

  • 确认NEXTAUTH_SECRET环境变量已正确配置并加载,缺失或错误的密钥会导致认证逻辑异常。
  • 检查pages.signIn的路径与实际登录页的路由完全一致,避免拼写错误导致重定向目标错误。

内容的提问来源于stack exchange,提问作者Talha Bayansar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 04:53:25