2013-04-17 11 views
8

Posso vedere che quando emetto un xhr dalla mia app di cromo che invia alcuni cookie, e questi cookie vengono tenuti traccia nell'app. I server che inviano le intestazioni del set-cookie li aggiornano correttamente. Ho comunque bisogno di leggere un cookie, e ho provato ad usare il permesso "cookies" ma chrome mi ha urlato contro ... C'è un'altra API che posso usare?Accesso ai cookie da un'app cromo

modifica: sto utilizzando le nuove app in pacchetto.

+0

Alcuni cookie sono [http-only] (https://www.owasp.org/index.php/HttpOnly). Per questo, NON dovrebbe esserci un modo per ottenerli tramite JavaScript. –

+1

Sono fortemente in disaccordo. Non dovrei implementare la richiesta HTTP usando i socket solo per ottenere l'intestazione restituita di cui ho bisogno (set-cookie) – ddumont

+0

In ogni caso non sto cercando di ottenere un cookie solo http – ddumont

risposta

2

Avevo un problema simile in cui le restrizioni di sicurezza su XHR in un'app in pacchetto con autorizzazione chrome.socket api sembravano eccessive. Vedi Setting "unsafe" headers in packaged app XHR

Ho finito per creare un oggetto xhr "shim" per il mio caso d'uso, anche se non gestisce ad es. codifica chunked. Potreste trovare utile: https://github.com/kzahel/jstorrent/blob/fresh/js/chromesocketxhr.js

ho finito per il deposito di un bug su crbug: https://code.google.com/p/chromium/issues/detail?id=335934

+1

Grazie per le informazioni, ho aggiunto alcuni commenti al problema. Speriamo che risolvono questo in modo tale da non dover in realtà reimplementare xhr over socket. – ddumont

4

Cookies è apparentemente una zona buia di Apps Chrome confezionati.

Con le estensioni, l'estensione condivide il contenitore dei cookie con normali attività di esplorazione. Per le app pacchettizzate, ogni app ha un contenitore separato.

Il comportamento corrente sembra essere che le richieste XHR ai siti specificati nel manifest nella sezione autorizzazioni impostino i cookie in questo jar ma non c'è modo di sbarazzarsene, ad eccezione della reinstallazione dell'app. Non esiste un'API per le app pacchettizzate per gestire i cookie ei loro cookie non vengono visualizzati negli strumenti per sviluppatori o su: // impostazioni/cookie.

le crbugs includono

https://code.google.com/p/chromium/issues/detail?id=70391 https://code.google.com/p/chromium/issues/detail?id=152758 https://code.google.com/p/chromium/issues/detail?id=157474

e questi due problemi riempiti in risposta a questa domanda SO

https://code.google.com/p/chromium/issues/detail?id=236585 https://code.google.com/p/chromium/issues/detail?id=335934

+0

Ho notato che ci sono alcune [facoltative_permissions] (https://developer.chrome.com/apps/permissions) che includono anche i cookie, chiunque ha provato con tali autorizzazioni ad accedere/cancellare i cookie? – colthreepv