您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何實現網站下次自動登錄功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我告訴你開源php框架的symfony中的一個很有名的擴展sfGuard是怎么做的網站的下次自動登錄功能的實現方法,可能可以給你提供一些思路。
網站的下次自動登錄功能的實現方法
首先你的數據庫需要一個rememberkey表:它包含了一下三個字段:
user_id,remember_key(string(32),unique),ip_address,當然還有兩個時間字段created_at和updated_at那幾乎是必須有的就不提了。
如果用戶在登錄的時候勾選了rememberme
那么用md5一個隨機值,比如timestamp+rand(0,9999999)產生一個remember_key。因為隨機的變化還是很大的,所以remember_key幾乎不可能會出重復的key。
然后把此key在客戶端cookie和數據庫各存放一份,cookie的存放時間就是你記住密碼設置的時間長度,另外ip要記在數據庫里面。
如果用戶點擊退出,那么在刪除session的同時,也把cookie里的remember_key以及數據庫對應的key那條記錄刪除,當然為了防止垃圾數據越來越多,此時也可以順便把所有過了失效的key全部刪除
如果用戶下次訪問頁面但是session已經失效,那么檢測是否有remember_key這個cookie,如果有的話,拿這個值以及訪問的ip去數據庫里找記錄,如果找到了,那么這條記錄的user_id對應的user就自動登錄了。
當然你可以做一些修改,比如ip不見得是必須的,因為國內的用戶ip會老變嘛。
怎樣實現自動登錄網站功能
對于直接使用用戶名和密碼登錄,不需要填寫驗證碼及手機驗證網站。我們通常有以下幾種方法實現自動登錄網站功能。
發送http請求直接登錄。
要點,是要保持cookie信息,記錄首次訪問時返回的cookie,下次請求時一同發送。
建立應用程序,使用webbrowser等插件內嵌網頁,實現自動登錄。
通過用戶動作模擬實現自動登錄。
需要驗證碼的登錄,這時我們需要自己編寫驗證碼識別程序,或者接入第三方的打碼平臺才能實現自動登錄。
關于“如何實現網站下次自動登錄功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。