def*_*rex 11 python authentication django django-authentication
我即将推出我正在网络上工作的网站的测试版.它需要有一个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))
Run Code Online (Sandbox Code Playgroud)
Ada*_*mKG 19
从这个Django片段开始,但修改它以检查request.session['has_beta_access'].如果他们没有它,那么让它返回重定向到"输入beta代码"页面,当使用正确的代码发布时,将该会话变量设置为True.
将其作为公共测试版,然后只需从您的MIDDLEWARE_CLASSES设置中删除该中间件.
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |