如何在Django中获取“用户名”的会话

时间:2014-05-14 14:34:05

标签: django session django-csrf django-sessions csrf-protection

我正在使用中间件来获取某个用户的会话,为此,我在Ajax的头部请求该用户的用户名和csrfToken。

如果可以仅使用该数据手动获取某个用户的会话? (会议在请求期间关闭,或由其他问题提出)

如果是的话,你能给我一些例子吗?

PS:

我想要访问它的用户的会话使用此代码生成了它的CSRF:

from django.middleware.csrf import _get_new_csrf_key as get_new_csrf_key

new_key = get_new_csrf_key()

return HttpResponse(
    simplejson.dumps({'token': new_key}), 
    mimetype='application/json'
)

1 个答案:

答案 0 :(得分:1)

您需要手动创建用户的会话,才能重新开始此会话。

正如你在这里看到的: https://docs.djangoproject.com/en/dev/topics/http/sessions/

from django.contrib.sessions.backends.db import SessionStore
s = SessionStore()
# stored as seconds since epoch since datetimes are not serializable in JSON.
s['last_login'] = 1376587691
s.save()
s.session_key
#'2b1189a188b44ad18c35e113ac6ceead'

s = SessionStore(session_key='2b1189a188b44ad18c35e113ac6ceead')
s['last_login']
#1376587691

如果你知道session_key,你可以再次使用它。