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

NextJS API auth路由下refresh-token端点无法正常调用求助

问题排查方案

现象总结

  • Next.js 项目中,pages/api/auth/[...param].ts 兜底路由处理多数路径正常,但访问 /api/auth/refresh-token 时无日志输出且被强制重定向到首页
  • 单独创建 pages/api/auth/refresh-token.ts 也存在相同异常
  • 重命名 auth 文件夹后,问题完全消失

1. 检查中间件拦截逻辑

Next.js 的 middleware.ts/middleware.js 会在请求到达 API 路由前执行,大概率是这里有规则拦截了目标路径:

  • 查看项目根目录下的 middleware.ts 文件,检查是否存在类似逻辑:
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  // 排查是否有匹配 /api/auth/refresh-token 的拦截规则
  if (request.nextUrl.pathname === '/api/auth/refresh-token') {
    return NextResponse.redirect(new URL('/', request.url));
  }
}
  • 同时留意前缀匹配或正则规则,比如是否有 matches: ['/api/auth/refresh-token'] 这类配置

2. 核对 next.config.js 中的重定向/重写规则

项目根目录的 next.config.js 里的 redirects 或 rewrites 配置也可能导致异常:

/** @type {import('next').NextConfig} */
const nextConfig = {
  async redirects() {
    return [
      // 检查是否存在指向该路径的重定向规则
      {
        source: '/api/auth/refresh-token',
        destination: '/',
        permanent: false,
      },
    ];
  },
};

module.exports = nextConfig;
  • 也要排查 rewrites 配置,确认是否将该路径重写到了其他无效位置

3. 排查第三方 Auth 依赖的自动处理

部分身份验证类 npm 包(如 NextAuth.js、Auth0)会自动接管 /api/auth/* 路径,内置的 refresh-token 端点逻辑会覆盖自定义路由:

  • 查看项目依赖中的 auth 相关包,比如 next-auth,检查其配置文件(如 [...nextauth].ts)是否占用了该路径
  • 这类包会优先处理特定的 auth 端点,导致自定义路由完全无法触发

4. 排除浏览器缓存或扩展干扰

  • 用无痕模式访问 /api/auth/refresh-token,排除浏览器缓存的旧重定向规则影响
  • 禁用所有浏览器扩展(如广告拦截、隐私保护类),确认是否是扩展拦截了请求并触发重定向

5. 检查自定义服务器或代理配置

如果项目使用了自定义服务器(如 Express + Next.js)或代理,可能在服务器层面拦截了该路径:

  • 查看自定义服务器文件(如 server.js),检查是否有针对 /api/auth/refresh-token 的路由处理逻辑
  • 核对代理配置(如 http-proxy-middleware),确认是否存在相关拦截规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:39:52