【发布时间】:2012-11-25 02:11:42
【问题描述】:
首先,在我提出这个问题之前,我想说如果有更合适的方法来完成这个,请告诉我,因为我可能会使用它。
好的,所以在我的应用程序中,我需要添加一个 REST API 以允许用户登录、更改一些内容以及注销,而无需使用浏览器。我想我应该让我写的 api_login 视图返回他们的 session_key,然后为每个请求传递会话密钥。比如那么
def login(request):
... all the django auth code I have
# login adds the information to the request right?
login (request, user)
return simplejson.dumps({'key': request.session.session_key})
我面临的问题是稍后尝试使用session_key,如下所示,但这奇怪地失败了
key = request.GET['key']
my_session = SessionStore(session_key=key)
my_session.session_key == key
>>> True
my_session.values()
>>> []
my_session.session_key == key
>>> False
如您所见,我使用正确的键从数据库中检索 SessionStore 对象。但是当我尝试从中检索任何值时,它返回空,甚至更改其中的基础键。对此的任何建议表示赞赏。
【问题讨论】:
-
这不是您问题的答案,但您应该查看 django-tastypie。它处理多种身份验证场景,包括与您想要做的类似的事情。 django-tastypie.readthedocs.org/en/latest/…