[javascript] 크롬은 세션 쿠키를 삭제하지 않습니다

다음과 같이 자바 스크립트에서 세션 쿠키를 설정하려고합니다.

document.cookie = 'name=alex; path=/'

그러나 브라우저를 종료하고 다시 시작하더라도 Chrome은 삭제하지 않습니다.

Firefox와 Opera에서 체크인했으며 둘 다 의도 한대로 작동합니다. 브라우저 종료시 세션 쿠키를 삭제합니다.

Chrome이 만료 규칙을 무시하고 있습니까?

여러 OS를 확인한 결과 Windows XP 및 Ubuntu에서는 Chrome에서 세션 쿠키가 제거되었지만 Mac OSX Lion에서는 제거되지 않습니다.



답변


답변

방금 “브라우징 세션 끝”에서 만료되도록 설정된 쿠키와 동일한 문제가 발생했습니다.

불행히도 브라우저의 설정으로 조금 연주하지 않았습니다.

브라우저를 닫을 때 열린 탭을 기억하는 기능이 문제의 원인이라는 것이 밝혀졌습니다. 이 기능의 이름은 “시작시”- “중지 된 곳에서 계속”입니다. 적어도 현재 Chrome 버전에서는.

이것은 Opera와 Firefox에서도 발생합니다.


답변

방금이 문제가있었습니다. 브라우저를 닫은 후에도 많은 Chrome 프로세스가 실행되고 있음을 알았습니다. 이들은 각각 Chrome 확장 프로그램에서 나온 것으로 나타났습니다.

고급 설정에서 선택을 해제 'Continue running background apps when Google Chrome is closed'하고 세션 쿠키가 정상적으로 작동하기 시작했습니다.

사용자가 브라우징을 마쳤을 때 세션 쿠키가 지워질 것으로 예상하는 코딩을하고있는 모든 개발자에게 여전히 고통 스럽습니다.


답변

브라우저를 닫은 후에도 Chrome이 백그라운드에서 계속 실행 중일 수 있습니다. 다음을 수행하여이 기능을 비활성화하십시오.

  1. chrome : // settings /를 엽니 다.
  2. “고급 설정 표시 …”를 클릭하십시오.
  3. 시스템 섹션으로 이동하여 “Chrome을 닫을 때 백그라운드 앱 계속 실행”을 비활성화하십시오. 이렇게하면 Chrome이 완전히 닫히고 세션 쿠키가 삭제됩니다.

그러나 Chrome은 닫는 대신 시작시 이전 세션 쿠키를 확인하고 삭제해야한다고 생각합니다.


답변

Chrome의 고급 설정에서 모두 선택 해제해야했습니다.

  • ‘Chrome을 닫을 때 백그라운드 앱 계속 실행’
  • “중지 된 위치에서 계속”, “시작시”

답변

간단한 대안은 새로운 sessionStorage 객체 를 사용하는 것입니다. 의견에 따라 ‘내가 계속 한 곳에서 계속하십시오’를 선택하면 sessionStorage가 다시 시작될 때까지 지속됩니다.


답변

Windows 8.1에서 “document.cookie”와 동일한 문제가 발생했습니다. Chrome에서 쿠키를 삭제하는 유일한 방법은 쿠키를 작업 관리자에서 종료하는 것입니다 (정말 멋진 방법은 아님). 백엔드에서 쿠키를 관리하거나 무언가를 사용하기로 결정했습니다. “js-cookie”와 같은