Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 1x 1x 1x 6x 15x 88x 87x 1x 1x 1x 1x 15x 15x 3x 15x 12x 3x | import { RequestInit, Response } from 'node-fetch';
import dbg from 'debug';
import { CookieList } from '../interfaces';
const debug = dbg('node-expose-sspi:client');
export class ClientCookie {
private cookieList: CookieList = {};
saveCookies(response: Response): void {
response.headers.forEach((value, name) => {
if (name !== 'Set-Cookie'.toLowerCase()) {
return;
}
// parse something like <key>=<val>[; Expires=xxxxx;]
const [key, val] = value.split(/[=;]/g);
debug('val: ', val);
debug('key: ', key);
this.cookieList[key] = val;
});
debug('cookieList: ', this.cookieList);
}
restituteCookies(requestInit: RequestInit): void {
const cookieStr = Object.keys(this.cookieList)
.map((key) => key + '=' + this.cookieList[key])
.join('; ');
if (cookieStr.length === 0) {
return;
}
requestInit.headers = { ...requestInit.headers, cookie: cookieStr };
}
}
|