2013-11-14 24 views
0

我想在自定義擴展中使用Firefox 25中的基於HTTP認證的用戶和XMLHttpRequest對象進行授權。XMLHttpRequest不在Firefox中緩存基本的HTTP認證

流量是像這樣:這是HTTP基本身份驗證保護

  1. 命中URL,授權使用或者xml.open('GET', url, true, username, password)xml.setRequestHeaders('Authorization', 'Basic someBASE64encodedSTRING==')
  2. 被重定向到另一個任意的非HTTP基本保護的URL。
  3. 將從第1步重定向回受保護的URL。在第1步和第3步之間,基本身份驗證將丟失,並且在第(3)步中,用戶將再次看到基本的HTTP身份驗證模式。

有沒有辦法強制瀏覽器(特別是Firefox)來緩存授權?

在Chrome中我能解決使用chrome.webRequest.onAuthRequired監聽這個問題:https://gist.github.com/Lordnibbler/2b616adfa4662ece5095

回答

0

由於HTTP是無狀態協議... 在步驟1中),一旦你驗證 - Web服務器應返回你「會話ID」 - 獨特的Web服務器知道的字符串,即您已通過身份驗證。您應該將該「會話ID」保存到cookie中。 2)也許第2步返回會話ID - 也可能。否則它無關緊要。 3)確保您發送「會話ID」與您的請求 - 應該工作

p.s.我只是隨機彈出...我從未開發任何Firefox擴展。