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

Next.js访问/profile无token cookie时如何重定向到/login页面

问题结论

你当前的配置不正确,无法实现需求。

错误原因

  • 你编写的has配置规则作用是:匹配**请求中存在key为token的cookie,且该cookie的值为字符串undefined**的场景才触发重定向
  • 你需要的逻辑是「请求中不存在token cookie时重定向」,二者逻辑完全不符,正常用户未登录时根本不会携带token cookie,当前规则不会生效

正确调整方案

直接将has字段替换为Next.js redirects原生支持的missing字段,去掉value配置即可,missing字段的作用就是匹配「不存在指定条件」的请求:

module.exports = {
  async redirects() {
    return [
      {
        source: '/profile',
        // 匹配不存在token cookie的请求
        missing: [
          {
            type: "cookie",
            key: "token"
          }
        ],
        permanent: false,
        destination: '/login',
      },
    ]
  },
}

扩展补充

  • 如果需要覆盖/profile下的所有子路由(比如/profile/settings、/profile/order等),可以将source值改为/profile/:path*
  • 现有配置的permanent: false不需要调整,返回的307临时重定向不会被浏览器缓存,适配登录态动态变化的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:21:03