網(wǎng)上關(guān)于移動(dòng)客戶端與服務(wù)器數(shù)據(jù)傳輸之間的 token 的細(xì)節(jié)使用好像都沒有詳細(xì)的說明,基本都是一筆帶過锋喜。對(duì)于簡簡單單的加入一個(gè)固定的參數(shù) token些己,其實(shí)是很容易被抓包的。
介紹
token 是登錄之后服務(wù)器返回的一段加密字符串(加密算法自己與后臺(tái)商量如何加解密)跑芳,存儲(chǔ)到本地轴总。在客戶端請(qǐng)求服務(wù)端數(shù)據(jù)的時(shí)候可以帶上(放在請(qǐng)求頭headers,參數(shù)都行)博个,更新 token 的方法自己與后臺(tái)商量怀樟,以下只是思路。
下面說一下我自己的方案:
啟動(dòng)頁判斷本地是否存在 token
為啥在啟動(dòng)頁更新 token 呢盆佣?是因?yàn)閱?dòng)頁在第一個(gè)頁面往堡,一般都會(huì)有幾秒的等待時(shí)間,是不做網(wǎng)絡(luò)請(qǐng)求操作的共耍,而且頁面使用率高虑灰。這樣隨機(jī)更新可以說安全性高。
a)本地存在 token
1)客戶端使用舊 token 請(qǐng)求更新 token
2)服務(wù)器判斷 redis 是否存在 token
3)存在則生成新的token 存儲(chǔ)在 redis 中痹兜,刪除舊的 token
4)不存在則判斷該用戶是否存在另一個(gè)與之不相等的 token
5)存在與之不相等的 token則說明該用戶賬號(hào)在其他設(shè)備登錄
6)不存在~則說明過期被刪除或者在其他設(shè)備登錄之后退出登錄被刪除(設(shè)置token過期時(shí)間為30天)
b)本地不存在 token
1)有三種情況穆咐,一種重來沒登錄過,一種是在新設(shè)備登錄,一種是登錄后退出用戶
退出用戶
網(wǎng)絡(luò)請(qǐng)求刪除 redis 中的token对湃,并刪除本地的 token