在通过用户名和密码验证后,我在视图session["UserID"]
中为用户登录状态设置了login page
。
然后我需要检查用户是否在其他所有视图中登录,例如home page
,shopping bag page
等。
我的问题是,我可以只检查一次,我应该在哪里写它?是否在调用视图之前触发了一些方法?
答案 0 :(得分:3)
我的问题是,我可以只检查一次,我应该在哪里写它?
你做了一次检查,如果你正在使用django的内置身份验证方法,那么整个用户处理都是为你完成的,你不需要会话用户id,因为django通过请求处理user
它的auth
middleware。
登录后,user
对象将request
作为AnonymousUser
对象的一部分,如果未登录则为auth
,如果是,则为用户类的实例登录。
在调用视图之前是否触发了一些方法?
是的,中间件,you could write your own自定义中间件,但我认为你不需要它。
我在ASP.NET中的MASTER PAGE中检查登录状态,它可以控制导入它的所有其他页面。
我还没有真正使用过asp.net但是你不需要这样做,django会为你处理它的用户(提供你使用的内置wrap_content
工具)。