14 lines
552 B
TypeScript
14 lines
552 B
TypeScript
export const forwardCookie = (ctx: any, res: any) => {
|
||
// 转发上游服务器返回的所有 set-cookie(支持多个 cookie)
|
||
const setCookieHeaders = res.headers.getSetCookie?.() || [];
|
||
if (setCookieHeaders.length > 0) {
|
||
// 设置多个 cookie 到原生 http.ServerResponse
|
||
ctx.res.setHeader('Set-Cookie', setCookieHeaders);
|
||
} else {
|
||
// 兼容旧版本,使用 get 方法
|
||
const setCookieHeader = res.headers.get('set-cookie');
|
||
if (setCookieHeader) {
|
||
ctx.res.setHeader('Set-Cookie', setCookieHeader);
|
||
}
|
||
}
|
||
} |