2016-03-24 3 views
2

Когда я создаю в JavaScript нового EventSource для прослушивания сервера посланных событий, например:Пользовательских заголовки в связи EventSource

var source = new EventSource("data/pushed"); 

Есть ли способ для меня, чтобы задать дополнительные заголовки (например, какой-то знак аутентификации) в исходящем HTTP-запросе?

ответ

3

Нет, EventSource standard не включает setRequestHeader путь XMLHttpRequest.

Он также не поддерживает POST. Но у вас есть куки. Таким образом, мой предпочтительный подход к токенам аутентификации, где это целесообразно, заключается в том, чтобы сначала войти в систему и создать сеанс, а затем этот куки-файл сеанса будет передан вместе с вашими SSE-запросами. (Помимо этого: если вы используете PHP и используете сеансы с SSE, помните, что они заблокированы, поэтому ваш SSE-процесс должен вызвать session_write_close(), как только он подтвердит пользователя. Сессии на других языках могут иметь аналогичную проблему.)

только другая альтернатива, которую я могу предложить, - использовать XMLHttpRequest (т. е. подход Комета).

0

У нас была аналогичная проблема, и мы решили в конце концов отправить наш токен авторизации по URL-адресу и не беспокоиться о безопасности, так как он будет защищен SSL (в производстве, конечно, мы используем протокол HTTPS).

Смежные вопросы