Django是否在用户登录时刷新request.session对象?

时间:2013-07-10 20:17:14

标签: python django session django-socialauth

我在Django应用程序中设置会话变量,如下所示:

request.session['something'] = True

在此之后,我将用户重定向到Login(via facebook - django-social-auth)。用户成功登录后,我的会话变量将丢失。我知道这是因为: -

if "something" in request.session -- is returning False

Django是否在登录/注销时刷新会话对象(使用Django身份验证系统)或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据login source code

def login(request, user):
    """
    Persist a user id and a backend in the request. This way a user doesn't
    have to reauthenticate on every request. Note that data set during
    the anonymous session is retained when the user logs in.
    """

因此,如果您在匿名request.session中设置某些内容,则会在登录后将其存在。

login仅刷新会话if the existing session corresponds to a different authenticated user

logout总是刷新会话(source code)。

希望有所帮助。