先回顧下之前所做的操作,在用戶登錄成功后將用戶信息存儲在內存里,如下所示
1、編寫用戶存儲信息模塊memoryUtils.js
2、登錄組件里,當登錄成功時將信息存儲到內存
3、后台主頁里進行登錄驗證
判斷內存里是否包含user用戶信息,如果沒有則表示沒有登錄,重定向到登錄頁;否則正常訪問
但此時發現問題,即刷新頁面時便會自動清除內存,所以接下來開始維持登錄與自動登錄,持久化存儲信息,這里用到localStorage,簡稱local
4、首先我們用原生語法做個封裝
但原生寫法有些兼容問題,我們可以結合第三方庫使用
然后去GitHub搜索store的語法文檔
5、首先安裝依賴包
> yarn add store
6、引入使用
依次替代原生語法,如下所示
優點:語法簡潔、兼容性好
7、登錄成功時做持久化存儲操作
接下來在入口文件index.js做存儲操作,讀取持久化存儲的user,保存到內存里
此時刷新頁面或者關閉瀏覽器,再次打開localhost:3000時便會直接顯示用戶信息,因為此時已經做了持久化存儲localStorage操作
但是此時任然存在問題,即訪問localhost:3000/login登錄頁面時仍然可以訪問,理論上來講,登錄成功后(在退出登錄前)不應該訪問到登錄頁面(業務邏輯)
8、登錄頁面做登錄狀態判斷
測試如下,此時登錄狀態下再次訪問登錄頁
結果如右所示:
會自動幫我們重定向到后台首頁。
如果刪除本地存儲,則可以正常訪問到登錄頁,如下所示
接着訪問后台首頁發現自動重定向到了登錄頁
.