详解django.contirb.auth-认证
因为用户认证需要查询数据库,得到用户的信息,所以减少开销是有必要的。注意,这种缓存只针对同一个request而言的,即在一个view中多次访问request.user属性。这个session的BACKEND_SESSION_KEY属性,就是指定使用哪种后台技术获取用户信息。如果不满足,就返回AnonymousUser对象。从这个获取user的过程,首先有个前提,就是客户端与服务端得先建立session机制。然后讲一下登录时,使用auth通常的做法:一般提交通过POST方式提交,然后调用authenticate方法验证,成功后使用login创建session。注意它在后面更新了user的backend属性,表明此用户是使用哪种backend认证方式。它的值会在login函数里,被存放在session的BACKEND_SESSION_KEY属性里。通过backend的authenticate方法返回的user,是没有这个属性的。上面展示了登录时auth的用法,在登录以后,就会建立session机制。
用户评论