我已經建立了建立在這些原則(來源:http://jaspan.com/improved_persistent_login_cookie_best_practice)永久登錄應用PHP持久登錄 - 每次頁面身份驗證後都要重新發佈一個cookie嗎?
- 當用戶成功登錄與記住選中,登錄cookie中除了標準的會話管理的cookie發行[2]。
- 登錄cookie包含用戶的用戶名,系列標識符和令牌。該系列和標記是來自適當大的空間的不可猜測的隨機數。所有這三個都一起存儲在數據庫表中。
- 當未登錄的用戶訪問該網站並顯示登錄Cookie時,會在數據庫中查找用戶名,系列和令牌。
- 如果存在三元組,則認爲該用戶已通過身份驗證。使用的令牌從數據庫中刪除。生成一個新的令牌,並以用戶名和相同的系列標識符存儲在數據庫中,並向用戶發佈一個包含全部三個的新登錄cookie。
- 如果用戶名和系列號存在但令牌不匹配,則認爲是盜用。用戶收到措辭強烈的警告,並且用戶的所有會話都被刪除。
- 如果用戶名和系列不存在,則會忽略登錄cookie。
據我所知,我重新發出一個新的令牌,初始認證成功後。但是,在其他需要驗證的頁面上,我是否會重新發佈一個新的令牌?繼續檢查該持久cookie。
或者,在初始成功認證之後,我會將用戶標記爲登錄狀態,並且只有通過會話向前認證,並保存該用戶在當前嘗試訪問該站點時的初始重新發布的Cookie會話過期(即關閉瀏覽器等)?
這就是我想的,讓我們看看別人是否有理由以另一種方式去做。 – Huxley