請教 驗證使用者是否登入 哪種方式好
記住我,自動登入
1、純cookie加密(假設不知道key的情況下無法解密)
cookie2個部分
1是加密的使用者基本資訊,如id、group、登入時間、過期時間
2是不可逆的hash,用id、瀏覽器特徵、使用者唯一rand、key組成
問題:禁用某個使用者,或所在使用者組到期後,在過期時間前,使用者仍然可以通過登入驗證並自由活動。
2、cookie+session
問題:同1
3、cookie+資料庫
問題:每個驗證的頁面均需要讀取資料庫,後期壓力大,感覺不是好方案
4、cookie+自定義session快取檔案
使用者初次登入後,使用者表寫入session檔名,當禁用某個使用者後,執行重寫對應session檔案
問題:更新使用者資訊後,如更改使用者組,需要同時判斷是否有快取檔案,然後做對應更新
5、cookie+快取表
使用者初次登入後,寫入快取表,當禁用某個使用者後,更新對應快取表
問題:更新使用者資訊後,如更改使用者組,需要同時判斷快取表然後做對應更新。
6、cookie+memcached類快取
問題:小記憶體或虛擬主機不合適
7、感謝補充
------解決思路----------------------
推薦session
------解決思路----------------------
2比較好,把禁用的使用者寫入cache,當自動登入時,檢查是否被禁用。
相關文章
相關**
使用者登入驗證
一 sql資料庫聯合查詢有四種 1 內連線 inner join 2 左連線 left outer join 3 右連線 right outer join 4 外連線 full outer join 舉例 select a.studentname,b.testtime,b.chengji from ...
使用者登入驗證
環境window,資料庫oracle11g 使用者分為sys系統使用者和no sys非系統使用者,所以分不同的方式 驗證1,sys系統使用者,驗證分為兩種 1 作業系統驗證 通過驗證登入使用者的作業系統來限制使用者的許可權。用安裝資料庫的使用者去登入資料庫,就是sysdba許可權。sqlplus a...
使用者登入驗證
完成使用者登入驗證 要求 1.系統自動生成4位隨機數.作為登入驗證碼.直接用就好.這裡不用糾結 from random import randint num 0 verify code while num 4 verify code chr randint 65,90 num 1 print ver...