請問 驗證使用者是否登入 哪種方式好

2022-10-09 10:51:08 字數 790 閱讀 7644

請教 驗證使用者是否登入 哪種方式好

記住我,自動登入

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...