П.С .: Я просто немного подумаю. Мне нравится эта проблема, и я собираюсь подумать об этом немного больше. Я только думал об этом только из того же домена node.js ...
выпуск Github
Я не знаю (так не думаю), возможно ли добавить заголовки.
P.S .: Я думаю, что вы также должны попытаться заполнить вопрос на https://github.com/LearnBoost/socket.io/issues. Хорошая вещь о github заключается в том, что автор получит электронное письмо, когда кто-то опубликует проблему. Кроме того, люди в learnboost - действительно хорошие люди, которые любят помогать вам.
Proxy
Прокси-запрос всех ваших запросов, так что запрос поступил из того же домена.
Refererer
Реферер передается, поэтому вы можете передавать информацию из него. Это также может быть подделано, так что вам лучше создать что-то, что вы можете проверить (только один раз) из Drupal. Я думаю, это было бы довольно легко реализовать ...
разрешить передачу сообщений только после проверки.
Я знаю, что вы можете сделать это отсоединить розетки через socket.disconnect()
. Откройте соединение и получите идентификатор socket.io, но принимайте сообщения только после подтверждения личности. Я бы сделал доступным маршрут через экспресс, который Drupal может свернуть с идентификатором post
socket.io (сохранить маршрут закрытым). Поскольку вы находитесь в домене Drupal, вы можете получить доступ к информации о сеансе Drupal.
// v0.7.x
var sid = socket.id;
Чтобы сделать это безопасным, единственный вариант - использовать SSL (это единственный способ, которым вы в любом случае можете обезопасить любой канал связи). Если вы доверяете SSL обоих доменов, вероятно, на самом деле не нужно. Затем, если разрешен идентификатор socket.io, вы разрешите передачу сообщений, в противном случае я просто отключу соединение.
PusherApp
Другим вариантом будет внедрение / клонирование аутентификации pusherapp => http://pusher.com/docs/client_api_guide/client_channels#subscribe-private-channels
![authentication](https://i.stack.imgur.com/pNC0C.png)
P.S. Я постараюсь загрузить пример позже, но сейчас мне пора спать. Надеюсь, это имело какой-то смысл:) ...