如何从django_session表的session_data中找到用户ID?
在django_session
表session_data
中存储的表首先使用python的pickle模块进行腌制,然后使用python的base64模块在base64中进行编码。
我得到了解码腌制的session_data。
django_session表中的session_data:
gAJ9cQEoVQ9fc2Vzc2lvbl9leHBpcnlxAksAVRJfYXV0aF91c2VyX2JhY2tlbmRxA1UpZGphbmdvLmNvbnRyaWIuYXV0aC5iYWNrZW5kcy5Nb2RlbEJhY2tlbmRxBFUNX2F1dGhfdXNlcl9pZHEFigECdS5iZmUwOWExOWI0YTZkN2M0NDc2MWVjZjQ5ZDU0YjNhZA==
通过base64.decode(session_data)对其进行解码后:
\x80\x02}q\x01(U\x0f_session_expiryq\x02K\x00U\x12_auth_user_backendq\x03U)django.contrib.auth.backends.ModelBackendq\x04U\r_auth_user_idq\x05\x8a\x01\x02u.bfe09a19b4a6d7c44761ecf49d54b3ad
我想找出auth_user_id
from的价值auth_user_idq\x05\x8a\x01\x02u
。请帮我这样做。
-
我在Paulo的方法上遇到了麻烦(请参阅我对他的回答的评论),所以我最终从scottbarnham.com博客文章中使用了这种方法:
from django.contrib.sessions.models import Session from django.contrib.auth.models import User session_key = '8cae76c505f15432b48c8292a7dd0e54' session = Session.objects.get(session_key=session_key) uid = session.get_decoded().get('_auth_user_id') user = User.objects.get(pk=uid) print user.username, user.get_full_name(), user.email