Czy ktoś wie, czy możliwe jest wysyłanie podstawowych poświadczeń uwierzytelniających http za pomocą EventSource?Źródło zdarzenia i podstawowe uwierzytelnianie http
Odpowiedz
Źródło zdarzenia dotyczy serwera wysyłającego zdarzenia do klienta. Myślę, że potrzebujesz uwierzytelnienia dwukierunkowego. W jaki sposób wyślesz rzeczywiste dane uwierzytelniające?
WebSockets może to jednak osiągnąć. Czy tego właśnie szukasz?
Aktualizacja:
Można osiągnąć to, co chcesz przez wykorzystanie ciasteczek, jak podkreślił 4esn0k. Pliki cookie wysyłane są wraz z pierwotnym żądaniem, które przeglądarka nawiązuje w celu nawiązania połączenia. Dlatego upewnij się, że ustawiłeś identyfikator sesji dla pliku cookie przed uruchomieniem jakichkolwiek połączeń do EventSource.
Jeśli mówić o plikach cookie (nie http auth):
EventSource używa http, więc cookies Wysłano wiadomość z żądaniem połączenia EventSource.
http auth należy wspierać wszelkie inne adresy URL http, chociaż z wyspecjalizoway CORS + http auth nie jest obsługiwana
szukam rozwiązania tego samego problemu. Ten post here mówi tak:
Innym zastrzeżeniem jest to, że o ile nam wiadomo, nie można przy użyciu EventSource zmienić http nagłówków, co oznacza, że trzeba złożyć autoryzacji ciąg kwerendy param z wartością, która Cię Zostałby wstawiony wstawiony przy użyciu uwierzytelniania HTTP Basic: zakodowane w base64 twoje logowanie i token.
Oto kod ze stanowiska:
// 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. Podstawowe uwierzytelnianie HTTP warunkowe
- 2. Python urllib2, podstawowe uwierzytelnianie HTTP i tr.im
- 3. Podstawowe uwierzytelnianie Facebook Connect i HTTP
- 4. Podstawowe uwierzytelnianie HTTP na iPhonie
- 5. jak android downloadManager zrobić podstawowe uwierzytelnianie http
- 6. Podstawowe uwierzytelnianie HTTP przy użyciu pythona
- 7. ActiveAdmin: Jak skonfigurować podstawowe uwierzytelnianie HTTP?
- 8. PowerShell HTTP POST REST API uwierzytelnianie podstawowe
- 9. Podstawowe uwierzytelnianie HTTP ASP.NET MVC5 i wyjątek AntiForgeryToken
- 10. .htaccess, mod_rewrite i podstawowe uwierzytelnianie
- 11. Podstawowe uwierzytelnianie dla WCF
- 12. rozdzielni uwierzytelnianie podstawowe
- 13. ASIHTTPRequest Uwierzytelnianie podstawowe braku
- 14. Jak poprawnie zdefiniować podstawowe uwierzytelnianie HTTP przy użyciu cURL?
- 15. Jak obsługiwać podstawowe uwierzytelnianie HTTP w zestawie AVURLA?
- 16. SOAP 1.2 przez SSL + podstawowe uwierzytelnianie HTTP lub WS-Security?
- 17. Podstawowe uwierzytelnianie za pomocą Flash
- 18. Podstawowe uwierzytelnianie za pomocą JavaScript
- 19. reagować-natywnej pobrać i uwierzytelnianie podstawowe
- 20. hak serwisowy github i podstawowe uwierzytelnianie
- 21. Wiosenne uwierzytelnianie HTTP Security
- 22. Podstawowe uwierzytelnianie w ASP.NET Rdzenia
- 23. Uwierzytelnianie HTTP między aplikacją devise i iphone
- 24. Podstawowe uwierzytelnianie adresu URL w iframie
- 25. Uwierzytelnianie HTTP jQuery
- 26. Jak wykonać podstawowe uwierzytelnianie z programem RestClient?
- 27. Podstawowe uwierzytelnianie za pomocą Qt (QNetworkAccessManager)
- 28. Uwierzytelnianie WCF Custom Http Proxy
- 29. Źródło zdarzenia w stosunku do oryginalnego źródła
- 30. AWS Lambda zaplanowane źródło zdarzenia przez cloudformation
EventSource musi zainicjować połączenie i dba o utrzymanie go otworzyć, albo nigdy nie zamykając go, jeśli nie jest zamknięta przez serwer lub próbę przywrócenia go na czas nieokreślony, jeśli jest zamykany przez serwer. Tak czy inaczej, EventSource musi wykonać pierwszy krok w połączeniu. EventSource jest idealny do mojego celu, ale chciałbym, aby wysyłać informacje uwierzytelniające podczas wysyłania żądania. –
Na podstawie specyfikacji (http://dev.w3.org/html5/eventsource/) nie ma możliwości wysłania tych poświadczeń, których się obawiam. – Tower
@Tower Nie zgadzam się. Źródło zdarzenia jest tylko żądaniem http, które jest utrzymywane przy życiu i ma typ treści "tekst/strumień zdarzeń". Możesz przekazać plik cookie jako dowolne inne żądanie http (zakładając, że jesteś już uwierzytelniony) lub możesz przekazać referencje za pomocą ciągu zapytania – saml