token機制完成登錄狀態保持/身份認證


一般APP都是剛安裝后,第一次啟動時需要登錄(提示你需要登錄或者直接啟動在登錄界面)。而只要登錄成功后,以后每次啟動時都是登錄狀態,不需要每次啟動時再次登錄。不過,也有些APP若你長期未啟動,再次啟動時,它會提示你登錄過期,讓你重新登錄。這個是怎么實現的?APP是怎么保持登錄狀態的?

之所以突然寫這個話題,是因為昨晚無意間刷知乎刷到了這個問題iOS系統如何實現app登錄類似微信只需登錄一次,退出后不需要每次登錄?
回答里給出了好幾種解決方案,其中比較標准的方案是“帶時效檢測的token機制”。所謂token,即“令牌”的意思。那這個token機制的執行邏輯是怎么樣的呢?

token機制

token機制的執行邏輯可以用下面一張圖展示清楚:

當用戶剛安裝完APP,並進行了注冊,擁有了賬號和密碼后。此時,則該進行首次登錄了:

APP將用戶輸入的賬號和密碼提交給服務器;
服務器對其進行校驗,若賬號和密碼對得上則校驗通過,說明登錄成功。並生成一個token值,將其保存在數據庫,同時也返回給客戶端;
客戶端拿到返回的token值后,可將其保存在本地。作為公共參數,即以后每次請求服務器時都攜帶該token,提交給服務器,讓服務器校驗。
服務器接收到請求后,會取出請求頭里的token值與數據庫存儲的token進行對比校驗。若兩個token值相同,則說明用戶登錄成功過,且當前正處於登錄狀態,此時正常返回數據,讓APP顯示數據。若兩個值不一致,則說明原來的的登錄已經失效,此時返回錯誤狀態碼,提示用戶跳轉至登錄界面重新登錄。

用戶每進行一次登錄,登錄成功后服務器都會更新個token新值返回給客戶端。

結尾

總結,用token機制完成登錄狀態保持/身份認證,生成怎樣的token,怎么進行token校驗都是服務器完成的。其實客戶端的工作很簡單,就是保存服務器給的token,然后將其作為請求服務器的公共參數。

 
       


免責聲明!

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



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