cookie、session、token、jwt認證方式這下全有了

cookie

cookie的誕生 由於HTTP協議是無狀態的,而服務器端的業務必須是要有狀態的。Cookie誕生的最初目的是為了存儲web中的狀態信息,以方便服務器端使用。比如判斷用戶是否是第一次訪問網站。目前最新的規範是RFC 6265,它是一個由瀏覽器服務器共同協作實現的規範。 Cookie的處理分為: 服務器像客戶端發送cookie 瀏覽器將cookie保存 之後每次http請求瀏覽器都會將cookie發送給服務器端

session

為什麼要有session的出現? 答:是由於網絡中http協議造成的,因為http本身是無狀態協議,這樣,無法確定你的本次請求和上次請求是不是你發送的。如果要進行類似論壇登陸相關的操作,就實現不了了。session生成方式? 答:瀏覽器第一次訪問服務器,服務器會創建一個session,然後同時為該session生成一個唯一的會話的key,也就是sessionid,然後,將sessionid及對應的session分別作為key和value保存到緩存中,也可以持久化到數據庫中,然後服務器再把sessionid,以cookie的形式發送給客戶端。這樣瀏覽器下次再訪問時,會直接帶著cookie中的sessionid。然後服務器根據sessionid找到對應的session進行匹配; 還有一種是瀏覽器禁用了cookie或不支持cookie,這種可以通過URL重寫的方式發到服務器;

token

訪問資源的令牌 驗證流程: 1.把用戶的用戶名和密碼發到後端 2.後端進行校驗,校驗成功會生成token, 把token發送給客戶端 3.客戶端自己保存token, 再次請求就要在Http協議的請求頭中帶著token去訪問服務端,和在服務端保存的token信息進行比對校驗。

JWT

java web token 的縮寫,可使用restful接口定義,也可以用在web中 段落引用組成: header 在header中聲明一些信息 payload、


cookie、session、token、jwt認證方式這下全有了


簽證 驗證流程: 1.段落引用在頭部信息中聲明加密算法和常量, 然後把header使用json轉化為字符串 2.段落引用在載荷中聲明用戶信息,同時還有一些其他的內容;再次使用json 把載荷部分進行轉化,轉化為字符串 3.使用在header中聲明的加密算法和每個項目隨機生成的secret來進行加密, 把第一步分字符串和第二部分的字符串進行加密, 生成新的字符串。詞字符串是獨一無二的。 4.解密的時候,只要客戶端帶著JWT來發起請求,服務端就直接使用secret進行解密。

特點: 1.三部分組成,每一部分都進行字符串的轉化 2.解密的時候沒有使用數據庫,僅僅使用的是secret進行解密。 3.JWT的secret不能洩密




分享到:


相關文章: