2014-07-13 66 views
-1

所以我正在考慮使用CodeIgniter來構建一個應用程序,以瞭解我的客戶可以在哪裏註冊等。但是,我一直在查看有關會話的文檔,我對於如何處理cookie數據/會話數據被驗證。有人可以爲我清楚嗎?我會解釋我的想法。Codeigniter用戶會話驗證

用戶登錄 - >會話被創建並存儲會話ID和電子郵件到cookie中 - >在每個頁面加載cookie數據在數據庫中被檢查以確認用戶會話ID與他們的用戶代理,IP和其他事物?

對不起,如果這是可怕的錯誤,但我很難理解保證會話的邏輯。感謝您的幫助!

回答

2

這是直接從笨手冊:

http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

如何各屆會議的工作?

加載頁面時,會話類將檢查用戶的會話cookie中是否存在有效的會話數據。如果會話數據不存在(或者已過期),則會創建一個新會話並保存在cookie中。如果會話確實存在,其信息將被更新並且cookie將被更新。每次更新後,會重新生成session_id。

重要的是你要明白,一旦初始化,Session類自動運行。沒有什麼你需要做的,導致上述行爲發生。正如你將在下面看到的,你可以使用會話數據,甚至可以將自己的數據添加到用戶的會話中,但讀取,寫入和更新會話的過程是自動的。

+0

是的,這是直接從我的帖子。 「我一直在查看有關會話的文檔,我對cookie數據/會話數據如何驗證有點困惑。」如果我沒有通過閱讀文檔得到它,我不認爲我會在你的答案中讀到它的引用版本。我要求一個體面的理解。 – Jarrod

+0

上面的內容是很容易理解的,但是爲了進一步解釋會話ID是一個隨機字符串,用於交叉引用會話表中的數據。然後,字符串將隨每個請求一起重新生成/加密,並在cookie和表中進行更新。如果會話表匹配cookie,則無法訪問數據。 – fossman83

+0

我也建議你將你的會話存儲在數據庫中。在存儲更多數據(如購物車數據等)時它們會更好地工作,並且也更安全。 – fossman83