Footnotes

  1. 새롭게 문서사이트가 개편되면서 현실적인 도움이 된다. ↩

  2. v3로 이전하기 위한 대략적인 가이드. 직접 옮겨보니 host_permissions으로 분리, action으로 통합(두군데 수정이 필요하다) — webext 커밋 ↩

  3. service_worker로 변경되면서 추가적으로 가이드 문서가 새로 생겼다. ↩

  4. mdn 스타일이 좋다면 이쪽 문서도 괜찮다. ↩

  5. next 구성으로 익스텐션 만들기 ↩

#127

httpOnly, secure 플래그 쿠키값이 필요한 경우 브라우저 쿠키 저장소에서 꺼낸다. HttpOnly 는 페이지의 JS(document.cookie)에서만 가려질 뿐 브라우저 쿠키 저장소에는 있다.1 Puppeteer 25 기준 browser.cookies() 가 그 저장소를 읽는다.2

const cookies = await browser.cookies() // HttpOnly 쿠키도 httpOnly: true 로 들어 있다

로컬에 해당 쿠키정보를 임시로 저장해서 재활용하고 만료 시 갱신하는 방법을 사용.

fs.writeFileSync('cookies.json', JSON.stringify(cookies))

await browser.setCookie(...JSON.parse(fs.readFileSync('cookies.json', 'utf8')))

예전 방식(CDP Network.getAllCookies, page.setCookie)은 둘 다 폐기됐다.3


Footnotes

  1. Set-Cookie - MDN: “Forbids JavaScript from accessing the cookie, for example, through the Document.cookie property.” ↩

  2. Browser.cookies() — Puppeteer: “Returns all cookies in the default BrowserContext.” · Browser.setCookie() — Puppeteer: “Sets cookies in the default BrowserContext.” ↩

  3. Chrome DevTools Protocol — Network.getAllCookies: “Deprecated. Use Storage.getCookies instead.” · Page.setCookie() — Puppeteer: “Page-level cookie API is deprecated. Use Browser.setCookie() or BrowserContext.setCookie() instead.” ↩

#91