Skip to main content

Class: Cookies

Class: 쿠키

세션의 쿠키를 조회하고 수정한다.

프로세스: 메인
이 클래스는 'electron' 모듈에서 직접 내보내지 않는다. Electron API의 다른 메서드 반환값으로만 사용 가능하다.

Cookies 클래스의 인스턴스는 Session 객체의 cookies 속성을 통해 접근한다.

예시:

const { session } = require('electron')

// 모든 쿠키 조회
session.defaultSession.cookies.get({})
.then((cookies) => {
console.log(cookies)
}).catch((error) => {
console.log(error)
})

// 특정 URL과 관련된 쿠키 조회
session.defaultSession.cookies.get({ url: 'https://www.github.com' })
.then((cookies) => {
console.log(cookies)
}).catch((error) => {
console.log(error)
})

// 주어진 쿠키 데이터로 쿠키 설정
// 동일한 쿠키가 존재하면 덮어쓸 수 있다.
const cookie = { url: 'https://www.github.com', name: 'dummy_name', value: 'dummy' }
session.defaultSession.cookies.set(cookie)
.then(() => {
// 성공
}, (error) => {
console.error(error)
})

Cookies 인스턴스에서 사용할 수 있는 이벤트는 다음과 같다:

이벤트: 'changed'

반환값:

  • event Event
  • cookie Cookie - 변경된 쿠키
  • cause string - 변경 원인. 다음 값 중 하나를 가짐:
    • explicit - 사용자의 직접적인 동작으로 쿠키가 변경됨
    • overwrite - 쿠키가 덮어쓰기 작업으로 인해 자동으로 제거됨
    • expired - 쿠키가 만료되어 자동으로 제거됨
    • evicted - 가비지 컬렉션 과정에서 쿠키가 자동으로 제거됨
    • expired-overwrite - 이미 만료된 날짜로 쿠키가 덮어쓰기됨
  • removed boolean - 쿠키가 제거된 경우 true, 그렇지 않으면 false

쿠키가 추가, 수정, 제거 또는 만료되어 변경될 때 발생한다.

인스턴스 메서드

Cookies 인스턴스에서 사용할 수 있는 메서드는 다음과 같다:

cookies.get(filter)

  • filter Object
    • url string (옵션) - 특정 url과 연결된 쿠키를 가져온다. 비어 있으면 모든 URL의 쿠키를 가져온다.
    • name string (옵션) - 쿠키 이름으로 필터링한다.
    • domain string (옵션) - 도메인이 domains와 일치하거나 하위 도메인인 쿠키를 가져온다.
    • path string (옵션) - 경로가 path와 일치하는 쿠키를 가져온다.
    • secure boolean (옵션) - Secure 속성으로 쿠키를 필터링한다.
    • session boolean (옵션) - 세션 쿠키 또는 영구 쿠키를 필터링한다.
    • httpOnly boolean (옵션) - httpOnly 속성으로 쿠키를 필터링한다.

반환값 Promise<Cookie[]> - 쿠키 객체 배열로 이행되는 Promise.

filter와 일치하는 모든 쿠키를 가져오는 요청을 보내고, 응답으로 Promise를 이행한다.

cookies.set(details)

  • details Object
    • url string - 쿠키와 연결할 URL. URL이 유효하지 않으면 Promise가 거부된다.
    • name string (선택 사항) - 쿠키의 이름. 생략 시 기본값은 빈 문자열이다.
    • value string (선택 사항) - 쿠키의 값. 생략 시 기본값은 빈 문자열이다.
    • domain string (선택 사항) - 쿠키의 도메인. 앞에 점을 추가해 서브도메인에서도 유효하도록 정규화된다. 생략 시 기본값은 빈 문자열이다.
    • path string (선택 사항) - 쿠키의 경로. 생략 시 기본값은 빈 문자열이다.
    • secure boolean (선택 사항) - 쿠키를 Secure로 표시할지 여부. Same Site=None 속성을 사용하지 않는 한 기본값은 false이다.
    • httpOnly boolean (선택 사항) - 쿠키를 HTTP only로 표시할지 여부. 기본값은 false이다.
    • expirationDate Double (선택 사항) - 쿠키의 만료 날짜. UNIX epoch 이후 초 단위로 표시한다. 생략하면 쿠키는 세션 쿠키가 되어 세션 간에 유지되지 않는다.
    • sameSite string (선택 사항) - 이 쿠키에 적용할 Same Site 정책. unspecified, no_restriction, lax, strict 중 하나를 선택할 수 있다. 기본값은 lax이다.

Returns Promise<void> - 쿠키가 설정되면 이행되는 Promise

details를 사용해 쿠키를 설정한다.

cookies.remove(url, name)

  • url string - 쿠키와 연관된 URL
  • name string - 삭제할 쿠키의 이름

반환값: Promise<void> - 쿠키가 삭제되면 이행되는 Promise

지정된 urlname에 해당하는 쿠키를 삭제한다.

cookies.flushStore()

Promise<void>를 반환한다. 쿠키 저장소가 비워지면 이 Promise가 해결된다.

이 메서드는 아직 디스크에 쓰이지 않은 모든 쿠키 데이터를 디스크에 기록한다.

어떤 방법으로 쿠키를 작성하더라도, 쿠키는 즉시 디스크에 기록되지 않는다. 대신 30초마다 또는 512번의 작업이 수행될 때마다 기록된다.

이 메서드를 호출하면 쿠키가 즉시 디스크에 기록될 수 있다.