크롬은 세션 쿠키를 삭제하지 않습니다
다음과 같이 자바 스크립트에서 세션 쿠키를 설정하려고합니다.
document.cookie = 'name=alex; path=/'
그러나 브라우저를 종료했다가 다시 시작해도 Chrome은 삭제하지 않습니다.
Firefox와 Opera에서 체크인했으며 둘 다 의도 한대로 작동합니다. 브라우저 종료시 세션 쿠키를 삭제합니다.
Chrome이 만료 규칙을 무시하고 있습니까?
여러 OS를 확인한 결과 Windows XP 및 Ubuntu에서는 Chrome에서 세션 쿠키가 제거되었지만 Mac OSX Lion에서는 제거되지 않습니다.
중단 한 위치에서 Chrome을 계속으로 설정하면이 문제가 발생할 수 있습니다 .
추가 자료
- 버그 보고서 : Chrome에서 임시 쿠키를 삭제하지 않습니다. 즉, 모든 브라우저 창을 닫을 때 자동으로 로그 아웃되지 않습니다.
- Chrome의 문제 128513 : Chrome 프로세스가 닫힐 때 세션 쿠키가 지워지지 않습니다
방금 "브라우징 세션 끝"에서 만료되도록 설정된 쿠키와 동일한 문제가 발생했습니다.
불행히도 브라우저의 설정으로 조금 연주하지 않았습니다.
브라우저를 닫을 때 열린 탭을 기억하는 기능이 문제의 원인이라는 것이 밝혀졌습니다. 이 기능의 이름은 "시작시"- "중지 된 곳에서 계속"입니다. 적어도 현재 Chrome 버전에서는.
이것은 Opera와 Firefox에서도 발생합니다.
방금이 문제가있었습니다. 브라우저를 닫은 후에도 많은 크롬 프로세스가 실행되고 있음을 알았습니다. 이것들은 각각 크롬 확장 프로그램에서 나온 것으로 나타났습니다.
고급 설정에서 선택을 해제 'Continue running background apps when Google Chrome is closed'
하고 세션 쿠키가 정상적으로 작동하기 시작했습니다.
사용자가 브라우징을 마쳤을 때 세션 쿠키가 지워질 것으로 예상하는 코딩을해온 모든 개발자에게 여전히 고통
브라우저를 닫은 후에도 Chrome이 백그라운드에서 계속 실행 중일 수 있습니다. 다음을 수행하여이 기능을 비활성화하십시오.
- chrome : // settings /를 엽니 다.
- "고급 설정 표시 ..."를 클릭하십시오.
- 시스템 섹션으로 이동하여 "Chrome을 닫을 때 백그라운드 앱 계속 실행"을 비활성화하십시오. 이렇게하면 Chrome이 완전히 닫히고 세션 쿠키가 삭제됩니다.
그러나 Chrome은 닫는 대신 시작시 이전 세션 쿠키를 확인하고 삭제해야한다고 생각합니다.
Chrome의 고급 설정에서 모두 선택 해제해야했습니다.
- 'Chrome을 닫을 때 백그라운드 앱 계속 실행'
- "중지 된 위치에서 계속", "시작시"
간단한 대안은 새로운 sessionStorage 객체 를 사용하는 것입니다. 의견에 따라 '내가 계속 한 곳에서 계속하십시오'를 선택하면 sessionStorage는 다시 시작할 때까지 지속됩니다.
Windows 8.1에서 "document.cookie"와 동일한 문제가 발생했습니다. Chrome에서 쿠키를 삭제하는 유일한 방법은 쿠키를 작업 관리자에서 종료하는 것입니다 (정말 멋진 방법은 아님). 백엔드에서 쿠키를 관리하거나 무언가를 사용하기로 결정했습니다. "js-cookie"와 같은
Chrome에서 행 아웃 확장 프로그램을 제거하려고 했습니까? 모든 창을 닫아도 크롬이 계속 실행되도록하기 때문입니다.
나는 또한 문제에 직면했지만 지금 해결되었습니다.
해결책은 sessionStorage
FYI 를 사용하는 것입니다 : https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
PHP 세션 쿠키에 도메인을 설정하면 브라우저가 30 초 정도 도메인을 유지하는 것으로 보입니다. 탭이나 브라우저 창을 닫아도 문제가되지 않습니다.
따라서 다음과 같은 것을 사용하여 세션을 관리하는 경우 쿠키가 브라우저에서 예상보다 오래 중단 될 수 있습니다.
ini_set("session.cookie_domain", 'www.domain.com');
교수형 쿠키를 제거하는 유일한 방법은 세션 쿠키의 도메인을 설정하는 코드 줄을 제거하는 것입니다. session_set_cookie_params () 함수도주의하십시오. 도메인 접두사로도 문제와 관련이없는 것 같습니다.
PHP PHPSESSID=b855ed53d007a42a1d0d798d958e42c9
가 세션이 파괴 된 후 헤더에 세션 쿠키 (예 :)를 보내면 PHP 버그 일 수 있습니다 . 또는 서버 전파 문제 일 수도 있지만 테스트가 개인 서버에서 수행 된 이후로는 그렇게 생각하지 않습니다.
방금 Chrome에서 세션 ID를 저장하는 데 문제가 있었지만 중단 한 부분을 계속하기 위해 옵션을 비활성화하는 아이디어가 마음에 들지 않습니다. 웹 사이트의 쿠키를보고 로그인 페이지의 세션 ID 쿠키를 찾았습니다. 삭제해도 문제가 해결되지 않았습니다. 도메인을 검색하여 도메인에 다른 세션 ID 쿠키가 있음을 발견했습니다. 두 세션 ID 쿠키를 모두 삭제 하면 문제가 수동으로 해결되었으며 쿠키를 복원 할 수있는 브라우저를 닫았다가 다시 열지 않았습니다.
쿠키를 부적절하게 설정 및 설정 해제하면 Google 크롬에 문제가 있습니다. 이것은 PHP 코드입니다. 이것이 당신에게 아이디어를 줄 것이라고 생각했습니다.
쿠키 설정
setcookie('userLoggedIn', 1, 0, PATH);
잘못된 방법으로 작동하지 않습니다 (PATH 알림이 누락 됨)
setcookie('userLoggedIn', 0, time()-3600);
Google 크롬에서 올바른 방법으로 문제가 해결됩니다.
setcookie('userLoggedIn', 0, time()-3600, PATH);
참고 URL : https://stackoverflow.com/questions/10617954/chrome-doesnt-delete-session-cookies
'Programing' 카테고리의 다른 글
SQL Server 2008 Management Studio Intellisense가 작동하지 않는 이유는 무엇입니까? (0) | 2020.05.21 |
---|---|
소멸자를 언제 만들어야합니까? (0) | 2020.05.21 |
NTFS 성능 및 대용량 파일 및 디렉토리 (0) | 2020.05.20 |
get_or_create를 사용하는 올바른 방법은 무엇입니까? (0) | 2020.05.20 |
Pyplot으로 모든 서브 플로트 위에 하나의 메인 타이틀을 설정하는 방법은 무엇입니까? (0) | 2020.05.20 |