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