我試圖完成以下行爲:的Django + APACHE:HTTPS只爲登錄頁面
當藉助該網站用戶訪問: http://example.com/
我希望他被重定向到: https://example.com/
通過中間件,如果用戶未登錄,登錄模板在訪問/
時呈現。如果用戶登錄,/
是主視圖。當用戶登錄時,我想通過http工作。爲此,我在端口80和443上運行相同的服務器(這是否真的有必要?我給人的印象是,我運行兩個具有相同應用程序的獨立服務器,而我想要一個服務器監聽兩個端口)。
當用戶導航離開登錄時,由於重定向到http服務器,request.session中的數據不存在(儘管它存在於https上),因此表明沒有用戶登錄。所以,考慮到Apache的設置是正確的(在兩個不同的端口上運行相同的服務器),我想我必須將cookie從運行在https上的服務器傳遞到http。
有人可以對此有所瞭解嗎?謝謝
謝謝你的回答。但是,如果我將SESSION_COOKIE_SECURE設置爲false,則在https模式下登錄不可用,因爲cookie不被接受,不是嗎? (我試過了,我無法登錄)。 我只使用https登錄,以避免以純文本和由於應用程序的一些必要條件發送密碼。順便說一句,其中一個原因就是在整個應用程序中使用https的強度。 我現在很好奇,就如何完成的第一個想法(因爲我已閱讀,雅虎郵件以這種方式運行) – rSkdA
SESSION_COOKIE_SECURE是上一個cookie告訴瀏覽器設置一個標誌,只有通過安全連接發送cookie 。這是特別的,所以cookie不會被髮送到我們正在討論的問題上。它不應該影響你登錄到一個安全的網站。 – newmaniese
以明文形式發送會話cookie與以明文形式發送密碼相同。所有授予的特權將是相同的。這是雅虎的一個主要問題,爲什麼我可以進入星巴克並登錄爲當前登錄到雅虎的任何人(或者Facebook或Twitter未通過安全連接)。 – newmaniese