我需要清除一个概念。
我在Django社交网络网络应用中跟踪未经身份验证的用户,只要新用户点击网络,就会在temp_id
词典中设置request.session
设置-app的登陆页面。代码很简单:
temp_id = request.session.get('temp_id',None)
if not temp_id:
request.session['temp_id'] = get_temp_id()
到目前为止一切顺利。
除了在request.session
中保存temp_id之外,我可以使用的另一种技术是为未经身份验证的用户明确设置浏览器cookie,如下所示:
if not request.session.exists(request.session.session_key):
request.session.create()
我想澄清的概念这些方法是否等同于?
我觉得他们是。我的理由是:如果浏览器cookie只是对存储在数据库中的Session
的引用,那么如果关闭了cookie,则无法为该用户匹配Session
。因此,无论采取哪种方法,我都会依赖浏览器存储Cookie 的能力。
或者换句话说,将temp_id
分配给未经身份验证的用户的两种方法都非常相似。唯一的区别是浏览器cookie的安全性低于会话变量(超过HTTPS
)。
有人可以指出这种思路是否正确?或者我的方法是错的?我基本上试图确定在未经身份验证的用户访问应用的目标网页并移动后,可靠地跟踪哪种方法。