LINUX.ORG.RU

[rtmplite][django] что придумать для ограничения прав на трансляцию

 


0

1

По сути уже прикрутил на сайт видео чат с помощью rtmplite. Зарегистрированные пользователи могут зайти к другому пользователю в профиль и там начать обыкновенный персональный чат. На этой же странице довил кнопку, которая запускает трансляцию (publish) в потоке с именем пользователя

rtpm://host/app?publish={{ request.username }}
a так же в другом флэш окне приём потока от собеседника
rtpm://host/app?play={{ собеседник.username }}

в этой схеме меня устраивает всё кроме, того что посылать поток с именем «вася» может совершенно не «вася». вот хотел бы спросить в какую сторону мыслить для осуществления ограничения прав в rtmplite.

мои мысли по этому поводу. justin.tv, например, для каждого пользователя генерирует API_KEY, который никому нельзя показывать, потому что любой сможет с этим ключом посылать поток в твой канал. по-моему, не айс.

как мне кажется, хорошей идеей будет при отправке потоков отдавать ещё и джанговские sessionid.

rtpm://host/app?publish={{ request.username }}&key={{ request.sessionid }}
потом расхачить rtmplite, чтоб он спрашивал у джанги (может через ./manage.py command или через базу напрямую) соответсвует ли сессия пользователю, и только тогда разрешать трансляцию.

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

rtpm://host/app?publish=ABCDE
и
rtpm://host/app?play=ZXCVB
, а у пети наоборот.

чёт я ещё что-то придумал, но уже не могу вспомнить. вобщем, какому варианту вы больше симпатизируете? или вообще как бы вы по-другому сделали?

заранее спасибо.

PS: да, не спится


через manage.py command плохо, мне так кажется не знаю на счет rtpm'ов но думаю похачить можно так что бы оно само смотрело на куки авторизации и пользователя узнавало

trashymichael ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.