Token认证模式详解
生活随笔
收集整理的這篇文章主要介紹了
Token认证模式详解
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 為什么要用Token?
- 服務(wù)端需要存儲(chǔ)Session,并且由于Session需要經(jīng)常快速查找,通常存儲(chǔ)在內(nèi)存或內(nèi)存數(shù)據(jù)庫中,同時(shí)在線用戶較多時(shí)需要占用大量的服務(wù)器資源。
- 當(dāng)需要擴(kuò)展時(shí),創(chuàng)建Session的服務(wù)器可能不是驗(yàn)證Session的服務(wù)器,所以還需要將所有Session單獨(dú)存儲(chǔ)并共享。
- 由于客戶端使用Cookie存儲(chǔ)SessionID,在跨域場景下需要進(jìn)行兼容性處理,同時(shí)這種方式也難以防范CSRF攻擊。
鑒于基于Session的會(huì)話管理方式存在上述多個(gè)缺點(diǎn),基于Token的無狀態(tài)會(huì)話管理方式誕生了,所謂無狀態(tài),就是服務(wù)端可以不再存儲(chǔ)信息,甚至是不再存儲(chǔ)Session。
2.Token是什么?
Token是 服務(wù)端生成的一串字符串,以作客戶端進(jìn)行請(qǐng)求的一個(gè)令牌,當(dāng)?shù)谝淮蔚卿浐?#xff0c; 服務(wù)器生成-個(gè)Token便將此Token返回給客戶端后,客戶端只需帶上這個(gè)Token前來請(qǐng)求數(shù)據(jù)即可,無需再次帶上域名和密碼。
token的具體邏輯如下:
- 客戶端使用用戶名,密碼進(jìn)行認(rèn)證。
- 服務(wù)端驗(yàn)證用戶名,密碼正確后生成Token返回給客戶端。
- 客戶端保存Token,訪問需要認(rèn)證的接口在URL參數(shù)或HTTP Header中加入Token
- 服務(wù)端通過解碼Token進(jìn)行鑒權(quán),返回給客戶端需要的數(shù)據(jù)。
Token的優(yōu)勢:
總結(jié)
以上是生活随笔為你收集整理的Token认证模式详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坑:Android从相册中选择图片加载到
- 下一篇: group by 取最新或者最后的一条数