公司的 mobile app 是外包給其他公司做的,所以現在他們需要我們提供 API 接口進行調試,由于沒有 API 開發的經驗,所以現在一個比較難把握的問題就是如何實現服務器端與移動 APP 端通信時的用戶身份認證問題。搜集了一些資料,大部分的建議是在服務器端生成一個 token 然后在通信報文的 headers 利用這個 token 來進行驗證。這里有兩個問題,首先這樣直接生成 token 進行認證的安全性。其次,生成的 token 應該怎么保存呢?存在 DB 里面還是哪個地方?(服務器端使用的是 php)因為本身產品對安全性要求不是特別高,遠沒有達到網銀之類的需求,所以在不考慮使用 oauth 等授權協議基礎上,我比較希望知道一些常用的身份驗證機制,以保證基本的安全性即可。再把問題寫清楚點:1.怎么生成安全性比較高的 token。2.token 需不需要設置過期時間(考慮到是 mobile app,所以這個比較難設計,因為很少有人會在 app 上會 log out 再重新登錄)。3.token 除了存在 db 內,有沒有一些更方便合適的方式。
2 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
APP里預埋一個token,結合時間戳/每次請求的一個隨機值randstr,生成一個最終signature,在Server進行驗證即可,(安全級別不是很高,但防大部分惡意請求沒問題了)。
如果還需要針對不同用戶生成不同的sigature,可以結合手機的DeviceId,在首次請求是上報這個,以后的請求就把DeviceId也作為因子帶入sigature的生成里。當然,這個過程也不是絕對安全的。
看你的意思是不需要絕對安全的,所以猜測你的目的是防惡意請求的,以上兩種方式應該可以滿足了。
添加回答
舉報
0/150
提交
取消