4

서버에 요청하는 Chrome 확장에 백그라운드 페이지가 있습니다. Chrome의 디버깅 도구를 사용하면 다양한 Set-Cookie 헤더가 반환됨을 알 수 있습니다. 그러나 후속 요청에는 이러한 쿠키가 포함되어 있지 않습니다. Chrome은 쿠키를 버리는 것처럼 보입니다. 이로 인해 서버에 대한 각 요청이 새 세션으로 계산됩니다. 내가 가진Chrome은 확장자 내에서 XMLHttpRequest의 Set-Cookie 응답 헤더를 무시합니다.

서버 측는 다음과 같은 헤더가 설정 :

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Credentials: true"); 

클라이언트 측 나는 XMLHttpRequest 객체에 withCredentials = true 세트가있다.

또한 확장 매니페스트의 사용 권한 섹션에 서버 주소가 있습니다.

나는이 솔루션에 매우 가깝다 - 서버가 올바른 헤더로 응답하지만 Chrome이 쿠키를 저장하지 않기로 결정한 이유를 제대로 이해할 수 없다.

헤더, XMLHttpRequest 객체 또는 매니페스트에 다른 설정이 필요합니까? 아니면 그냥 가능하지 않나요?

+0

후속 요청도 set-cookie 헤더를 반환합니까? – Gerben

+0

예, 항상 새로운 세션이 있기 때문입니다. 결국 솔루션을 발견하고 아래에 게시했지만 제 3 자 쿠키를 활성화해야하기 때문에 조금 쓰다. – kanassa

답변

2

나는 마침내이 중 하나를 해결했습니다. 트릭은 "쿠키"권한을 확장 매니페스트에 넣는 것입니다. 크롬 확장 문서에서는 chrome.cookies API를 사용하는 경우에만 필요하다고 명시했기 때문에 이는 분명하지 않습니다.

타사 쿠키도 활성화해야합니다. 제 3 자 쿠키를 활성화하는 것이 내가 추천하고 싶은 것이 아니기 때문에 전혀 다른 솔루션이 필요할 수 있습니다.

관련 문제