剛剛入行4個月,一直在寫PHPCMS的模組,屬於代碼層級的,學到最多的是代碼的最佳化;
偶爾看到同事寫的登入下有個複選框,選擇下次自動登入;
我想問問大神們是怎麼做的。哪種方法比較流行。
回複內容:
剛剛入行4個月,一直在寫PHPCMS的模組,屬於代碼層級的,學到最多的是代碼的最佳化;
偶爾看到同事寫的登入下有個複選框,選擇下次自動登入;
我想問問大神們是怎麼做的。哪種方法比較流行。
一般是通過設定cookie到期時間來實現的.預設cookie是工作階段狀態,也就是關閉瀏覽器後,這個cookie就會自動被刪除.如果你要實現"記住登入"操作,其實就是把cookie的到期時間延長,比如1年.這樣瀏覽器重啟後再次開啟你的網站時,瀏覽器會把這個沒有到期的cookie發給伺服器的PHP,程式根據這個cookie就能識別你是哪一個使用者,因為用於認證的cookie裡一般都儲存了使用者的ID和包含密碼的雜湊.
比如資料庫中存放的使用者密碼:
$salt = sha1(uniqid(mt_rand(), true)); //用來雜湊的鹽
$pwd_db = sha1($salt.sha1($pwd_user)); //$pwd_db是資料庫儲存的使用者密碼
cookie裡的使用者密碼:
$pwd_cookie = sha1($global_salt.sha1($pwd_db));
驗證使用者cookie時就是根據cookie裡的使用者id查出$pwd_db,然後經過sha1($global_salt.sha1($pwd_db))操作後跟cookie的密碼雜湊對比,一致則是合法的cookie.
別說我回答的不是你想要的.
別說我的回答是無意義的
關閉我的回答也無所謂
好吧 我給你的答案是
http://lmgtfy.com/?q=%E4%B8%8B%E6%AC%A1%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95
如果不行, 就這個
http://lmbtfy.retaker.me/?q=%E4%B8%8B%E6%AC%A1%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95
這才是你應該去的地方.
最後, 請看看這裡
http://coolshell.cn/articles/3713.html
最簡單的做法就是直接留一個cookie,把使用者名稱放裡頭,看見使用者名稱就允許存取。不過這樣不安全,於是你需要在伺服器端留一個token,如果token對上了就允許存取。但你其實不想知道那麼多細節,於是你選了一套成熟可靠的openid方案,然後拋棄這個問題去研究真正需要你操心的商務邏輯。