在urls.py中检查用户是否已认证
在urls.py文件中,可以做这样的事情吗?
2 个回答
1
这样做是不对的。
最好的方法是用 @login_required 装饰器来包裹你的视图。
举个例子:
@login_required
def home_page(request):
...
你可以在你的 settings.py 文件中指定 LOGIN_URL,这样如果用户没有授权,就会被重定向到这个地址。
想了解更多,请查看 Django 文档。
0
在视图中应该进行身份验证检查,因为这是进行检查和确保安全的地方。
除了这个,你还可以在网址中给基于类的视图加上一些装饰器来检查用户是否登录,但最常见、最合理的方法还是在视图里进行检查。如果你使用的是基于类的视图,可以创建一个混入类(Mixin),用来检查用户是否已经登录。结合Django提供的工具,这样可以把用户引导到合适的页面(比如登录页面,或者如果检查通过,就让他访问他想要的页面)。
如果你使用的是基于函数的视图,Django也为这些函数提供了装饰器,来满足网络框架的一些常见需求。
另外,如果你在使用基于类的视图,django-braces已经提供了一些很棒的混入类,可以用来处理常见的任务(比如Ajax和安全性等)。