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
相关产品推荐
相关产品推荐

