Hoi allemaal,
Ik zit met een wat typische vraag (en vraag me af of het uberhaupt mogelijk gaat zijn). De situatie is als volgt;
- Een webcam die via Motion zijn afbeeldingen streamt naar het net. Motion is beveiligd met basic auth (over HTTPS).
- Ik wil via jQuery mbv een AJAX call de basic auth dialoog alvast valideren zodat ik direct de MJPEG stream kan laten zien. Basic auth zetten via AJAX/jQuery is niet zo lastig met bv zoiets;
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ':' + password));
},
Het probleem hiermee is dat het een MJPEG stream is en de complete callback nooit afgaat omdat het geheel blijft laden (logisch opzich). Ik had geprobeerd om dan maar een timeout op te geven voor de call, maar dan word ik alsnog niet geauthoriseerd (kan ik begrijpen want ik krijg dan van de server nooit een response).
Ik ben ook bekend dat het mogelijk is in sommige browsers om de credentials in de URL te zetten voor basic auth. Helaas blokkeert Chrome dit standaard vanaf versie 59 (en daarnaast is het eigenlijk ook beetje bad practice) en is dus geen optie.
Is er een manier om toch alvast te kunnen authoriseren zodat ik de basic auth dialoog kan onderdrukken en direct de MJPEG stream kan tonen?
Alvast bedankt
Ik zit met een wat typische vraag (en vraag me af of het uberhaupt mogelijk gaat zijn). De situatie is als volgt;
- Een webcam die via Motion zijn afbeeldingen streamt naar het net. Motion is beveiligd met basic auth (over HTTPS).
- Ik wil via jQuery mbv een AJAX call de basic auth dialoog alvast valideren zodat ik direct de MJPEG stream kan laten zien. Basic auth zetten via AJAX/jQuery is niet zo lastig met bv zoiets;
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Basic ' + btoa(username + ':' + password));
},
Het probleem hiermee is dat het een MJPEG stream is en de complete callback nooit afgaat omdat het geheel blijft laden (logisch opzich). Ik had geprobeerd om dan maar een timeout op te geven voor de call, maar dan word ik alsnog niet geauthoriseerd (kan ik begrijpen want ik krijg dan van de server nooit een response).
Ik ben ook bekend dat het mogelijk is in sommige browsers om de credentials in de URL te zetten voor basic auth. Helaas blokkeert Chrome dit standaard vanaf versie 59 (en daarnaast is het eigenlijk ook beetje bad practice) en is dus geen optie.
Is er een manier om toch alvast te kunnen authoriseren zodat ik de basic auth dialoog kan onderdrukken en direct de MJPEG stream kan tonen?
Alvast bedankt