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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Token登录原理分析

發布時間:2023/12/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Token登录原理分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Token 是在服務端產生的。如果前端使用用戶名/密碼向服務端請求認證,服務端認證成功,那么在服務端會返回 Token 給前端。前端可以在每次請求的時候帶上 Token 證明自己的合法地位。

Token是什么

token就相當于客戶端登錄的賬號的唯一標識,在做一些數據請求的時候,后臺會要求在請求頭中攜帶token,如果沒有token,或者token過期了,那么這時候就會對這個客戶端進行返回響應的數據,然后前端在解析這些數據,判斷是token過期,還是沒有攜帶token,然后讓用戶進行相應的操作。總而言之,token是在向后臺請求數據的時候必不可少的。如果沒有token,那么后臺要么不會返回響應的數據,要么就會返回一些無關緊要的數據。

簡單token的組成;uid(用戶唯一的身份標識)、time(當前時間的時間戳)、sign(簽名,token的前幾位以哈希算法壓縮成的一定長度的十六進制字符串。為防止token泄露)。

為什么要使用Token

  • Token 完全由應用管理,所以它可以避開同源策略
  • Token 可以避免 CSRF 攻擊,安全性高
  • Token 可以是無狀態的,可以在多個服務間共享

接下來了解一下request和session的區別

  • request 指在一次請求的全過程中有效,即從http請求到服務器處理結束,返回響應的整個過程,存放在HttpServletRequest對象中。在這個過程中可以使用forward方式跳轉多個jsp。在這些頁面里你都可以使用這個變量。request是用戶請求訪問的當前組件,以及和當前web組件共享同一用戶請求的web組件。如:被請求的jsp頁面和該頁面用<include>指令包含的頁面以及<forward>標記包含的其它jsp頁面;
  • Session是用戶全局變量,在整個會話期間都有效。只要頁面不關閉就一直有效(或者直到用戶一直未活動導致會話過期,默認session過期時間為30分鐘,或調用HttpSession的invalidate()方法)。存放在HttpSession對象中 ,同一個http會話中的web組件共享它。

token主要有兩個作用:

  • 防止表單重復提交(防止表單重復提交一般還是使用前后端都限制的方式,比如:在前端點擊提交之后,將按鈕置為灰色,不可再次點擊,然后客戶端和服務端的token各自獨立存儲,客戶端存儲在Cookie或者Form的隱藏域(放在Form隱藏域中的時候,需要每個表單)中,服務端存儲在Session(單機系統中可以使用)或者其他緩存系統(分布式系統可以使用)中)
  • 用來作身份驗證,防止表單重復提交,主要的理念是,客戶端初始化的時候,一般就是剛剛進入頁面的時候就調用后端代碼,后端代碼生成一個token,返回給客戶端,客戶端儲存token(可以在前臺使用Form表單中使用隱藏域來存儲這個Token,也可以使用cookie),然后就將request(請求)中的token與(session)中的token進行比較
  • 使用基于 Token 的身份驗證方法,在服務端不需要存儲用戶的登錄記錄。大概的流程是這樣的:

  • 客戶端使用用戶名跟密碼請求登錄
  • 服務端收到請求,去驗證用戶名與密碼
  • 驗證成功后,服務端會簽發一個 Token,再把這個 Token 發送給客戶端
  • 客戶端收到 Token 以后可以把它存儲起來,比如放在 Cookie 里或者 Local Storage 里
    客戶端每次向服務端請求資源的時候需要帶著服務端簽發的 Token
  • 服務端收到請求,然后去驗證客戶端請求里面帶著的 Token,如果驗證成功,就向客戶端返回請求的數據
  • 總結

    以上是生活随笔為你收集整理的Token登录原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。