我有一個奇怪的問題,我正在努力與Django會議。基本上我的會話創建正確,但出於某種原因,我無法檢索後會話數據的內容。Python/Django和會話問題
下面是基本的一步一步的指導
第1步:我訪問網頁和(預期)我沒有一個有效的會話呢。
HOMEPAGE: SESSION VALUE session_key: None userSecureId: None END HOMEPAGE: SESSION VALUE
第2步:我登錄時,產生的Django的一個會話,然後將用戶重定向到他的部分
這裏是如何生成我的會議,以及如何重定向我的用戶: context = RequestContext(request) request.session['userSecureId'] = verify_token['userSecureId'] request.session.set_expiry(3600) return HttpResponseRedirect('http://mywebsite/portal/'+verify_token['userSecureId'], context)
這是我在日誌中找到(我只是做了HttpResponseRedirect之前打印此右):
AUTH PAGE: SESSION VALUE session_key: None userSecureId: 4d9f6a58-0ad4-4a4b-8191-bbfc8e397afe END AUTH PAGE: SESSION VALUE
所以截至目前,Django的創造了我的會話,並能夠檢索userSecureId
步驟3的值:由於種種原因,userSecureId的價值ResponseRedirect過程中丟失。這時我的web應用程序檢測我的cookie,並能夠檢索會話密鑰,但userSecureId回報「無」
HOMEPAGE: SESSION VALUE session_key: co5nknkz7kmka82f5130098gxoyvxkf8 userSecureId: None END HOMEPAGE: SESSION VALUE
只是爲了確認我的會議是在Django的側面配置正確,如果我解碼session_data是的django_session其中session_key ='co5nknkz7kmka82f5130098gxoyvxkf8',然後我能夠正確檢索值(意味着userSecureId存在)
另一個問題是此代碼在我的本地系統上完美工作。所以我只是想知道我是否錯過了一些東西。我正在使用遠程數據庫來存儲會話信息,並且我已經確認我的遠程系統可以聯繫數據庫。
我試圖改變我的settings.py(例如:添加SESSION_COOKIE_SECURE,SESSION_COOKIE_DOMAIN,SESSION_COOKIE_HTTPONLY,SESSION_SAVE_EVERY_REQUEST
但他們都不似乎影響我的應用程序的一般行爲
上什麼可能是
感謝您的建議。然而,這並不能解釋爲什麼當我遠程託管我的django應用程序時,我無法在ResponseRedirect之後檢索會話的值(如果我重定向到/ portal/或只是/ portal)。 –
PERPO
我是否正確理解會話值被寫入會話存儲數據庫? – C14L
你是對的。會話值存儲在我的數據庫中。這些數據包括一些用戶ID信息,電子郵件和我的服務所需的其他各種信息。我們的想法是,只要有可能將用戶指向某個特定的url(檢查userSecurId是否存在以確認用戶被批准使用該應用),就可以檢索此值。 – PERPO