這是一個在操作系統里比較常見的功能,但在web里實現,有哪些需要注意的呢?
1、如何真正的實現鎖屏?
2、如何避免通過技術手段繞過鎖屏?
我個人總結出2點需要特別注意的地方,下面就分別進行分析。
第一點,“如何真正的實現鎖屏”,瀏覽器有個特性,就是可以多開窗口(或tab標簽頁),這就意味着單純的靠js和css進行html對象的操作,實現隱藏是不夠的,因為如果用戶依舊處於登入狀態,其他人只需重新開個頁面,或者刷新一下,就又變回未鎖屏狀態了。所以,第一點的解決辦法就是,前端通過js和css進行html對象操作的同時,后端需要將當前用戶登出,這樣用戶就處於登出狀態了,並且通過鎖屏界面解鎖登錄后,是可以繼續之前的操作的。
第二點,“如何避免通過技術手段繞過鎖屏”,如果上一點已經解決,那他人已經無法通過刷新或重新打開窗口繞過鎖屏,但還有一種方法,就是通過瀏覽器自帶的一些調試工具,比如chrome的“開發者工具”,firefox的“firebug”,這些可以動態的修改對象元素,做前端開發的一定不陌生。要避免這一問題,解決辦法就是在鎖屏的時候,創建一個函數實時進行指定對象的檢測,檢測的指標有,對象是否存在,是否處於隱藏狀態,位置是否有變動等。
針對第二點,我做了一個簡單的demo,大家可以玩玩,當點擊“開啟鎖屏”后,在不點擊“退出鎖屏”按鈕,嘗試使用瀏覽器的開發者工具,讓“開啟鎖屏”界面重現出來。