如何保存用戶的登錄狀態


錯誤示范
用戶登錄后,使用 localStorage 方法在瀏覽器客戶端直接保存 user_id,每次進入網站時,通過識別 user_id 自動獲取用戶的信息並實現登錄。

 

 

錯誤點
瀏覽器 localStorage 保存的數據可能被——篡改
在瀏覽器控制台使用 localStorage.setItem() 即可更改當前 user_id,如果 user_id 被別人改了,那豈不是可以隨意竊取任何人的信息?
使用cookie保存用戶 id 也有一樣的風險,
所以使用這種方法做保存登錄狀態和自動登錄是不安全的

 

 

問題解決:Token

用戶登錄,后端加密生成 token,保存在用戶表中,並返回給前端
前端獲取 token,保存在 localStorage 中

 


自動登錄

進入網站,前端檢測到 token ,首先進行 token 驗證
后端驗證 token ,找到相關用戶,然后返回數據,實現登錄
發送請求,解析出 user_id

 


請求中攜帶 token
在需要驗證 token 的 controller 中定義 public function verifytoken() 方法
在需要驗證 token 的接口中調用這個函數,然后解析出 user_id

 


解決策略:
使用 localStorage + token 方法進行身份驗證

登錄:前端保存 token 和 個人信息(姓名、頭像等,不包括user_id)
每次進入網站先驗證 token 是否過期,如果沒過期,則保持當前狀態,如果過期,則清空本地 token 和 本地個人信息,並跳轉到登錄頁

 


免責聲明!

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



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