react項目實現維持登錄與自動登錄


先回顧下之前所做的操作,在用戶登錄成功后將用戶信息存儲在內存里,如下所示

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、登錄頁面做登錄狀態判斷

  

 

  測試如下,此時登錄狀態下再次訪問登錄頁

  結果如右所示:

 

  會自動幫我們重定向到后台首頁。

  如果刪除本地存儲,則可以正常訪問到登錄頁,如下所示

  

 

  接着訪問后台首頁發現自動重定向到了登錄頁

  

 

 

 

 

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM