我即将推出我正在网络上工作的网站的测试版.它需要有一个beta代码来限制访问.该网站是用django编写的.
我不想改变基本的Auth系统以适应beta代码,我并不特别关心beta代码的安全性是铁质的,只是它是一个重要的绊脚石.
我该怎么做?这是一个相当大的项目,因此向每个视图添加代码远非理想.
该解决方案效果很好.中间件类我最终得到了这个:
from django.http import HttpResponseRedirect class BetaMiddleware(object): """ Require beta code session key in order to view any page. """ def process_request(self, request): if request.path != '/beta/' and not request.session.get('in_beta'): return HttpResponseRedirect('%s?next=%s' % ('/beta/', request.path))
AdamKG.. 19
从这个Django片段开始,但修改它以检查request.session['has_beta_access']
.如果他们没有它,那么让它返回重定向到"输入beta代码"页面,当使用正确的代码发布时,将该会话变量设置为True
.
将其作为公共测试版,然后只需从您的MIDDLEWARE_CLASSES
设置中删除该中间件.
从这个Django片段开始,但修改它以检查request.session['has_beta_access']
.如果他们没有它,那么让它返回重定向到"输入beta代码"页面,当使用正确的代码发布时,将该会话变量设置为True
.
将其作为公共测试版,然后只需从您的MIDDLEWARE_CLASSES
设置中删除该中间件.