日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Token认证模式详解

發(fā)布時(shí)間:2024/1/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Token认证模式详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 為什么要用Token?

  • HTTP是一個(gè)無狀態(tài)的協(xié)議,一次請(qǐng)求結(jié)束后,下次在發(fā)送服 務(wù)器就不知道這個(gè)請(qǐng)求是誰發(fā)來的了(同一個(gè)IP不代表同一個(gè)用戶),在Web應(yīng)用中,用戶的認(rèn)證和鑒權(quán)又是非常重要的一環(huán)。
  • 在Web應(yīng)用發(fā)展的初期,大部分采用基于Cookie-Session的會(huì)話管理方式,但是基于Session的方法又存在這很多的問題:
    • 服務(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)勢:

  • 服務(wù)端不需要存儲(chǔ)和用戶鑒權(quán)有關(guān)的信息,鑒權(quán)信息會(huì)被加密到Token中,服務(wù)端只需要讀取Token中包含的鑒權(quán)信息即可。
  • 避免了共享Session導(dǎo)致的不易擴(kuò)展的問題。
  • 不需要依賴Cookie,有效的避免Cookie帶來的CSRF攻擊問題
  • 使用CORS可以快速解決跨域問題。
  • 總結(jié)

    以上是生活随笔為你收集整理的Token认证模式详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。