Django RSS源认证
我正在寻找添加RSS饲料给我的Django应用程序之一,我希望能够让他们进行身份验证。
我想在Django 1.2中使用新的联合框架。 我已阅读关于如何执行此操作的文档并进行基本的提要设置。
我是新来的认证饲料,所以我不知道最好的方法是什么或我的选择是什么。
每个用户都有一个唯一的子域,我希望URL结构看起来像这样: http://mysubdomain.mysite.com/myapp/rss/
: http://mysubdomain.mysite.com/myapp/rss/
如果可能的话。
我不希望这些提要可以公开使用,是否可以使用用户名和密码进行身份验证? 你有没有发现大多数饲料读者支持这个? 如果无法为每个用户进行身份验证,我是否应该尝试使用uuid给他们一个唯一的url或者是否不够安全?
正如你可能会告诉我不知道采取什么方向,所以任何建议最好的方式来做到这一点将非常感激。
谢谢
你有没有尝试将联合视图django.contrib.syndication.views.feed
包装到需要登录的视图中? RSS提要通常应该通过HTTP获取,所以这应该工作!
# Import Django's standard feed view.
from django.contrib.auth.decorators import login_required
from django.django.contrib.syndication.views import feed
# Wrap it in a new feed view that requires authentication!
private_feed = login_required(feed)
警告:我从来没有试过这个!
编辑 !
为了安全使用不支持重定向的RSS阅读器,请使用以下内容返回HTTP 401状态码:
authentication_url = '/accounts/login'
def feed_safe_login_required ( view ):
def _ ( request, *args, **kwargs ):
if not request.user.is_authenticated:
return HttpResponseNotAuthorized, authentication_url
return _
feed = feed_safe_login_required(django.contrib.syndication.views.feed)
HttpResponseNotAuthorized
在此django片段中定义的位置。
这是一个古老的线索,但我最近遇到了同样的问题。 我通过重载Feed对象的__call__
方法来解决它:
from django.http import HttpResponse
class ArticleFeed(Feed):
"snip [standard definitions of title, link, methods...]"
def __call__(self,request,*args,**kwargs):
if not request.user.is_authenticated():
return HttpResponse(status=401)
else:
return super().__call__(request,*args,**kwargs)
链接地址: http://www.djcxy.com/p/48257.html