1.App登錄Token登錄機制:
一般第一次安裝App后,會讓你進行注冊后登錄,而只要登錄成功后,以后的每次啟動App都是登錄狀態,
不需要每次啟動時再登錄。但有些App你若長期沒有啟動,它會提示你登錄過期,讓你重新登錄。整個過程如
下:
2.Token的生成過程:
3.Token相對於Cookie的好處:
1).支持跨域訪問: Cookie是不允許垮域訪問的,token支持
2).無狀態: token無狀態,session有狀態的
3).去耦: 不需要綁定到一個特定的身份驗證方案。Token可以在任何地方生成,只要在 你的API被調用的時候, 你可以進行Token生成調用即可.
更適用於移動應用: Cookie不支持手機端訪問的
4).性能: 在網絡傳輸的過程中,性能更好
基於標准化: 你的API可以采用標准化的 JSON Web Token (JWT). 這個標准已經存在 多個后端庫(.NET, Ruby, Java,Python, PHP)
和多家公司的支持(如: Firebase,Google, Microsoft)。
4.Token的 缺陷
1). 占帶寬
正常情況下要比 session_id 更大,需要消耗更多流量,擠占更多帶寬,假如你的網站每月有 10 萬次的瀏覽器,就意味着要多開銷幾十兆的流量。
聽起來並不多,但日積月累也是不小一筆開銷。實際上,許多人會在 JWT 中存儲的信息會更多。
2). 無法在服務端注銷,那么就很難解決劫持問題
3.) 性能問題:
JWT(Json Web Token) 的賣點之一就是加密簽名,由於這個特性,接收方得以驗證 JWT 是否有效且被信任。但是大多數 Web 身份認證應用中,
JWT 都會被存儲到 Cookie 中,這就是說你有了兩個層面的簽名。聽着似乎很牛逼,但是沒有任何優勢,為此,你需要花費兩倍的 CPU 開銷來驗證簽名。
對於有着嚴格性能要求的 Web 應用,這並不理想,尤其對於單線程環境。