有誰知道是否有可能通過EventSource發送基本http身份驗證憑據?EventSource和基本http身份驗證
8
A
回答
2
EventSource是關於服務器向客戶端發送事件的。我認爲你需要雙向通信進行身份驗證。你會如何發送實際的憑證?
但是,WebSockets可以實現這一點。那是你在找什麼?
更新:
你可以達到你想要的利用餅乾,由4esn0k指出。 Cookie與瀏覽器建立連接的初始請求一起發送。所以,只要確保在啓動任何EventSource連接之前設置cookie的會話標識符。
2
如果你談的cookies(不HTTP認證):
EventSource的使用HTTP,因此Cookie與EventSource的連接請求sended。雖然從規格CORS + HTTP認證不支持
1
我正在尋找一個解決同樣的問題
HTTP認證應該支持任何其他的HTTP URL。這篇文章here這樣說:
另一個需要注意的是,據我們所知,你不能改變HTTP 頭使用EventSource的時候,這意味着你必須提交 授權查詢字符串PARAM與價值,你將使用HTTP基本身份驗證插入 :您的 登錄和令牌的base64編碼級聯。
下面是從崗位代碼:
// First, we create the event source object, using the right URL.
var url = "https://stream.superfeedr.com/?";
url += "&hub.mode=retrieve";
url += "&hub.topic=http%3A%2F%2Fpush-pub.appspot.com%2Ffeed";
url += "&authorization=anVsaWVuOjJkNTVjNDhjMDY5MmIzZWFkMjA4NDFiMGViZDVlYzM5";
var source = new EventSource(url);
// When the socket has been open, let's cleanup the UI.
source.onopen = function() {
var node = document.getElementById('sse-feed');
while (node.hasChildNodes()) {
node.removeChild(node.lastChild);
}
};
// Superfeedr will trigger 'notification' events, which corresponds
// exactly to the data sent to your subscription endpoint
// (webhook or XMPP JID), with a JSON payload by default.
source.addEventListener("notification", function(e) {
var notification = JSON.parse(e.data);
notification.items.sort(function(x, y) {
return x.published - y.published;
});
notification.items.forEach(function(i) {
var node = document.getElementById('sse-feed');
var item = document.createElement("li");
var t = document.createTextNode([new Date(i.published * 1000), i.title, i.content].join(' '));
item.appendChild(t);
node.insertBefore(item, node.firstChild);
// We add the element to the UI.
});
});
相關問題
- 1. 與基本身份驗證的HTTP基本身份驗證
- 2. 基本HTTP身份驗證
- 3. CORS和HTTP基本身份驗證
- 4. JSF 2和基本HTTP身份驗證
- 5. JPG,HTTP基本身份驗證和PHP
- 6. 禁用其他身份驗證的HTTP基本身份驗證
- 7. Authlogic - 通過基本HTTP身份驗證進行身份驗證
- 8. NSURLConnection SSL HTTP基本身份驗證
- 9. http基本身份驗證與vert.x
- 10. HTTP基本身份驗證登出
- 11. NodeJs HTTP代理基本身份驗證
- 12. 安全HTTP基本身份驗證
- 13. Rails 2.x http基本身份驗證
- 14. C#Http基本身份驗證繞過
- 15. TouchJSON與基本的HTTP身份驗證
- 16. Symfony基本API Http身份驗證
- 17. HTTP基本身份驗證與Authlogic
- 18. WCF與Http基本身份驗證
- 19. 與NSURLSession的HTTP基本身份驗證
- 20. iPhone上的基本HTTP身份驗證
- 21. Noir的基本HTTP身份驗證
- 22. URLConnection的HTTP基本身份驗證
- 23. Objective-C的HTTP基本身份驗證
- 24. 使用基本身份驗證和代理身份驗證的駱駝Http
- 25. 基本身份驗證改造+基本身份驗證
- 26. Ajax:HTTP基本身份驗證和身份驗證Cookie
- 27. RESTful端點的身份驗證 - 基本身份驗證和XHR
- 28. CakePHP 2.0身份驗證和基本身份驗證
- 29. NSURLSession,HTTP基本身份驗證和自簽名證書
- 30. 基本socket.io身份驗證
的EventSource必須初始化連接,並需要保持其開放的照顧,無論是從來沒有關閉它,如果它沒有關閉或者如果服務器正在關閉服務器,則試圖無限期地重新建立它。無論採用哪種方式,EventSource都必須完成連接的第一步。 EventSource非常適合我的目的,但我希望它在發出請求時發送身份驗證信息。 –
根據規範(http://dev.w3.org/html5/eventsource/),恐怕沒有辦法發送這些憑證。 – Tower
@塔我不同意。一個EventSource只是一個保持活動的HTTP請求,並且具有「文本/事件流」的內容類型。您可以將cookie作爲任何其他http請求(假設您已經通過身份驗證),也可以通過查詢字符串傳遞憑據 – saml