来自Django的POST请求,以使用Django验证应用程序

时间:2011-02-23 09:34:12

标签: django authentication

好的,所以这看起来很糟糕(可能是这样,但我现在有足够的疑虑,我想尝试一下)。

我有一个Django基地网站,其中一个页面上嵌有一个jwplayer flash应用程序。用户必须登录才能进入该页面。 jwplayer只是扮演一个冰流。

我希望/需要做的是让只有经过身份验证的用户才能访问icecast服务器。目前,如果他们从网页上获取网址,他们可以相当平凡地进入网站。

Icecast可以通过POST进行身份验证,我已经在django视图中进行了设置。

所以我想要的是让flashplayer将登录用户的用户名和密码发送到icecast,然后使用相同的用户名和密码进行身份验证。

我的问题是django没有存储实际的密码,只是一个哈希(一件好事)所以我开始认为我不能真正将用户和密码发送给icecast进行身份验证。

我的其他想法是只发送用户名,并检查该人是否已经过身份验证。

但如果有人已经登录,这将允许有人听。

我可以用会话变量做些什么吗?

Django大师的帮助我!我对所有人和任何想法持开放态度。

干杯

标记。

1 个答案:

答案 0 :(得分:0)

为什么不让您的Flash播放器查找Django会话cookie,然后针对用户登录的Web服务器进行验证?

在您的网址中添加以下内容:

(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)