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

Next.js中间件无法检测到已存在的Session Cookie问题排查求助

Next.js中间件无法检测到已存在的Session Cookie问题排查求助

我现在遇到了一个棘手的问题:用Flask做后端、Next.js做前端实现登录功能,登录流程本身是正常的——浏览器里能看到Session Cookie已经设置好了,但当我尝试访问受保护的路由时,Next.js的中间件完全检测不到这个Cookie,导致用户被直接重定向回登录页。

先给大家看下我的相关代码:

Flask 登录端点代码

@auth_bp.route('/login', methods=['POST'])
def login():
    data = request.json
    name = data.get('name')
    password = data.get('password')
    
    user = User.query.filter_by(name=name).first()

    if user and user.check_password(password):
        session["user_id"] = user.id
        return jsonify({
            "user_id": user.id,
            "user_name": name,
            "redirect": "/home"
        })
    
    return jsonify({"error": "Invalid Credentials"}), 401

Next.js middleware.js 代码

import { NextResponse } from 'next/server';

export function middleware(request) {
    const session = request.cookies.get('session');
    const { pathname } = request.nextUrl;

    console.log('session: ', session)
}

export const config = {
    matcher: ['/', '/home/:path*', '/login', '/register'],
};

核心问题

现在的问题是,request.cookies.get('session') 一直返回 undefined,但我明明能在浏览器的Application > Cookies里看到这个Cookie存在。

我已经确认了以下几点:

  • Cookie确实已经在浏览器中成功设置
  • 中间件正在正常运行,并且能输出日志内容

到底是什么原因导致中间件检测不到这个Cookie呢?我该怎么调整才能让中间件正确识别到Session Cookie?

备注:内容来源于stack exchange,提问作者João Gabriel Sena

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 09:52:59