由于某些奇怪的原因,会话信息会在对经过身份验证的用户的调用之间进行清理。
我将django-social-auth
和mongoengine backend
用于sessions
。我还重写了d efault django auth User class with my own and written my own
MongoEngineBackend class (similar to what exists in
mongo.django`)。
我正确地对用户进行身份验证,并尝试在会话中存储关于用户的一些关键ID。
在管道的最后一步,django-social-auth
调用complete()
,其中包含django auth的login()
函数。该函数需要一个新的会话(可理解),但会将必要的数据从匿名会话写入数据库。我通过直接查询django_session
集合确实看到了这一点。
但是,当django-social-auth
重定向成功的身份验证(管道结束)时,会重写会话。
我无法弄清楚我做错了什么或者重新编写会话。
另一个副作用是request.user也会再次设置为AnonymousUser(即使它之前指向有效的身份验证用户)complete()