在Express.js Backend中设置cookie
设置cookie时,您必须确保domain,安全选项和samesite设置与前端设置相匹配。如果您的前端和后端在不同的子域中,则需要允许跨站点饼干。
一个常见问题是,除非您通过完全相同的域,并且设置cookie时使用的路径是不起作用的。
res.clearCookie()
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
用于跨站点饼干。
希望这有帮助!让我知道您是否有任何疑问。 😊🚀