POST-запрос от Django для аутентификации приложения с помощью Django - PullRequest
0 голосов
/ 23 февраля 2011

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

У меня есть веб-сайт, посвященный базам Django, на одной из которых встроено приложение jwplayer flash. Пользователь должен войти, чтобы попасть на эту страницу. Jwplayer просто проигрывает ледяную трансляцию.

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

Icecast может аутентифицироваться через POST, который я настроил в представлении django.

Так что я хочу, чтобы flashplayer отправил имя пользователя и пароль пользователя, который вошел в систему, в icecast, который затем аутентифицируется с тем же именем пользователя и паролем.

Моя проблема в том, что django не хранит действительный пароль, просто хеш (хорошая вещь), поэтому я начинаю думать, что я не могу действительно отправить пользователя и пароль в icecast для аутентификации.

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

Но это позволит кому-то слушать, если кто-то уже вошел в систему.

Могу ли я что-то сделать с переменной сеанса или что-то еще?

Джанго гуру, помогите мне! Я открыт для всех и любых идей.

Приветствия

Mark.

1 Ответ

0 голосов
/ 01 июня 2011

Почему бы вашему флеш-плееру не найти файл cookie сеанса Django, а затем проверить на веб-сервере, что пользователь вошел в систему?

Добавьте что-то вроде этого в свои URL:

(r'^loggedin/', logged_in_user),

Добавить вид примерно так (не проверено):

from django.http import HttpResponseForbidden
def logged_in_user(request):
    if request.user.is_authenticated():
        return HttpResponseForbidden()
    else:
        response = HttpResponse(mimetype='text/plain')
        response.write('ok')
        return response

Затем просто зайдите в / loggedin / и проверьте код возврата, если он зарегистрирован в 200, если 401 - нет (при условии, что вы передаете файлы cookie сеанса)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...