megaplan/ecomet — Issue #1: Автризация, переавторизация, проверка состояния
Author: kulikov
Created: 2011-12-01 15:36:42+00:00
State: open

Формат сообщения:

```javascript
{
type: 'subscribe',
routes: ['user.chat.live', 'my.custom.route.key'],
auth: {
authUrl: 'http://my-auth-server.ru/auth',
cookie: 'userId=13sdf45; sesID=1345;'
}
}
```
type: 'subscribe', будет передоваться всегда, по этому параметру можно отловить подобные сообщения

routes: [], содержит список топиков, на которые нужно подписать юзера

auth: содержит данные для авторизации.

1. Если получаем auth и текущий юзер не авторизован — авторизовываем его
2. Если получаем auth и текущей юзер авторизован — переавторизовываем его
2.1 Если после переавторизации сменился эксченж — переподписываем все топики на новый ексченж
3. Если текущий юзер не авторизован и мы не получили auth — ошибка!

Все подписки из секции routes всегда добавляем к текущим.
После каждой авторизации/переавторизации не забываем перезаписывать userId и account текущего пользоватея.
Храним где-то отдельно все routes-топики, на которые подписан юзер, в случае если после очередной переавторизации у пользователя сменится account — переподписываем все топики на новый эксченж

Раз в 5 минут (значение должно быть конфигурируемым) перезапрашиваем авторизацию по последнему известному нам authUrl и cookie.