如何正确处理Next.js(服务器端) + Express.js后端的cookie? 我正在用Express.js后端为我的Next.js frontend致力于身份验证,而处理cookies有点棘手。我遇到了cookie在前端无法访问的问题,而不是

问题描述 投票:0回答:1

在Express.js Backend中设置cookie

设置cookie时,您必须确保domain,安全选项和samesite设置与前端设置相匹配。如果您的前端和后端在不同的子域中,则需要允许跨站点饼干。
next.js frontend backend middleware server-side
1个回答
0
投票

🗑️正确清理饼干(注销问题)

一个常见问题是,除非您通过完全相同的域,并且设置cookie时使用的路径是不起作用的。 res.clearCookie()


🔴常见错误:

如果您的cookie不清除,请检查:

res.clearCookie('token', {
  domain: '.example.com', 
  path: '/', 
});
与设置cookie时相同。

明确设置为
domain
.

浏览器没有缓存cookie。

  • 🔐在Next.js中间件(服务器端身份验证)访问cookie

  • 如果您需要访问cookies

    在渲染页面之前(例如,用于身份验证),则可以在

    next.jsmiddleware.
    .
    .
    中读取它们。

    path
  • 🚀摘要和解决方案
如果使用子域,则使用正确域

'/')设置cookie。

确定import { NextResponse } from 'next/server'; export function middleware(request) { const token = request.cookies.get('token')?.value; if (!token) { return NextResponse.redirect(new URL('/login', request.url)); } return NextResponse.next(); } export const config = { matcher: ['/:path*'], }; .example.com

用于跨站点饼干。

使用相同的域和路径正确清除饼干。

Next.jsMiddleware
    在渲染页面之前进行身份验证。
  1. 希望这有帮助!让我知道您是否有任何疑问。 😊🚀

    	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.