2011-12-28 3 views
4

Я работаю над приложением Node.js, где практически все общение происходит через sockets.io.socket.io - Catch all event

Что мне нужно сделать, перед обработкой любого запроса (кроме запроса на вход) убедитесь, что пользователь аутентифицирован.

Очевидным способом сделать это было бы наличие улавливающего слушателя, который вызывается до выполнения любого метода.

Я не могу найти ничего подобного в Socket.io. Как я могу добиться? Есть ли лучший подход, чем тот, который я принимаю?

+0

Я понимаю проблему, я прохожу в той же ситуации, ответ, приведенный ниже, не решает проблему, я предполагаю, что вы создаете одностраничное приложение и как у вас нет перезагрузки на странице, рукопожатие происходит только один раз ... –

ответ

1

Лучшим подходом здесь будет аутентификация пользователя при подключении (рукопожатие), разбор куки-файлов и декодирование сеанса.

Подробнее об этом в следующих ссылок:

http://www.danielbaulig.de/socket-ioexpress/ (это содержит подробное руководство все, что вам нужно сделать)
https://github.com/LearnBoost/socket.io/wiki/Authorizing
socket.io and session?

0

Checkout из socket.io-events на ном для «Поймать все события "

var router = requrie('socket.io-events')(); 
router.on('*', function (sock, args, cb) { 
    //do something with the args! 
    cb(); 
}); 
var io = require('socket.io')(3000); 

Оформить заказ socket.io-handshake на ном для поддержки сокета socket.io v1.x