2012-05-01 103 views
-3

我已經建立登錄系統,PHP和我總是使用會話登錄用戶。作爲使用會話的結果,我的瀏覽器總是創建一個名爲PHPSESSID的cookie。如果用戶檢查記得我選擇,我將設置用戶名和密碼的cookie。請注意,這些cookie可以在瀏覽器中訪問。的Facebook讓我登錄VS不會再讓我登錄

,因爲我總是喜歡看別人怎麼做自己的登錄系統,我決定測試這一點與Facebook。我登錄到我的facebook,而不檢查記住我的登錄,然後我檢查Cookie,但我沒有看到PHPSESSID的cookie。有誰知道爲什麼?

是第二次,我登錄到Facebook的,這個時候我查了讓我登錄。然後我檢查了餅乾,我看到了相同的到期日相同餅乾在我第一嘗試。

如果同一餅乾第一嘗試的結果,那麼有什麼區別?或者更好地說說使用它的意義何在?

+0

有關Facebook的內部問題,你要問的Facebook,而不是在這裏。 – hakre

+0

我認爲這是因爲他們不能在服務器上存儲這麼多的會話,因此他們必須依靠cookie ... –

+1

@SokhratSikar Facebook有足夠的容量來存儲會話。他們可能使用類似memcached羣集的方式來執行此操作。 – ceejayoz

回答

2

如果用戶檢查記住我的選項,我會將用戶名和密碼設置爲cookie。

請不要那樣做。密碼和其他敏感數據不應保存到Cookie中。

因爲,我總是喜歡看別人怎麼做他們的登錄系統,我決定用facebook來測試這個事實。我登錄到我的facebook,而不檢查記住我的登錄,然後我檢查Cookie,但我沒有看到PHPSESSID的cookie。有誰知道爲什麼?

會話cookie不必被命名爲PHPSESSID。我展示了來自Facebook的11個Cookie,其中有些數據可能是會話信息。

如果第一次和第二次嘗試導致相同的cookie,那麼有什麼區別?或者更好地說說使用它的意義何在?

的記得,我的功能很容易被服務器端。

有在做Web開發的幾乎所有的方法不止一種。 Facebook是一個複雜的系統,因此他們有時會使用比您的小型項目所需更復雜的解決方案。

+0

只要您輸入了密碼,您應該可以將它存儲在cookie中 –

+0

記住我的功能很容易在服務器端進行。會話在您關閉瀏覽器時到期,因爲即使關閉瀏覽器,設置cookie也不會過期,因此我認爲您不能在服務器端實現記憶功能。 –

+0

當然可以。你使cookies永遠持續下去,但你決定在服務器端是否要求用戶的密碼。如果他們在x小時後沒有任何活動,但他們沒有檢查「記住我」,那麼儘管使用了有效的cookie,但他們仍會以登錄框的形式呈現給他們。 – ceejayoz