移動端與服務器端之間的 token 怎么設計?


作者:做個前端

鏈接:https://www.jianshu.com/p/e07f51c5c8bd

網上關於移動客戶端與服務器數據傳輸之間的 token 的細節使用好像都沒有詳細的說明,基本都是一筆帶過。對於簡簡單單的加入一個固定的參數 token,其實是很容易被抓包的。

介紹

token 是登錄之后服務器返回的一段加密字符串(加密算法自己與后台商量如何加解密),存儲到本地。在客戶端請求服務端數據的時候可以帶上(放在請求頭headers,參數都行),更新 token 的方法自己與后台商量,以下只是思路。

下面說一下我自己的方案:

啟動頁判斷本地是否存在 token

為啥在啟動頁更新 token 呢?是因為啟動頁在第一個頁面,一般都會有幾秒的等待時間,是不做網絡請求操作的,而且頁面使用率高。這樣隨機更新可以說安全性高。

a)本地存在 token

1)客戶端使用舊 token 請求更新 token
2)服務器判斷 redis 是否存在 token
3)存在則生成新的token 存儲在 redis 中,刪除舊的 token
4)不存在則判斷該用戶是否存在另一個與之不相等的 token
5)存在與之不相等的 token則說明該用戶賬號在其他設備登錄
6)不存在~則說明過期被刪除或者在其他設備登錄之后退出登錄被刪除(設置token過期時間為30天)

b)本地不存在 token

1)有三種情況,一種重來沒登錄過,一種是在新設備登錄,一種是登錄后退出用戶

退出用戶

網絡請求刪除 redis 中的token,並刪除本地的 token

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2021最新版)

2.別在再滿屏的 if/ else 了,試試策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新語法?

4.Spring Boot 2.5 重磅發布,黑暗模式太炸了!

5.《Java開發手冊(嵩山版)》最新發布,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


免責聲明!

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



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