cookie和token身份驗證

2021-09-03 08:21:04 字數 1633 閱讀 4263

http cookie(也叫web cookie或瀏覽器cookie)是伺服器傳送到使用者瀏覽器並儲存在本地的一小塊資料,它會在瀏覽器下次向同一伺服器再發起請求時被攜帶併發送到伺服器上。通常,它用於告知服務端兩個請求是否來自同一瀏覽器,如保持使用者的登入狀態。cookie使基於無狀態的http協議記錄穩定的狀態資訊成為了可能。

cookie主要用於以下三個方面:

會話狀態管理(如使用者登入狀態、購物車、遊戲分數或其它需要記錄的資訊)

個性化設定(如使用者自定義設定、主題等)

瀏覽器行為跟蹤(如跟蹤分析使用者行為等)

cookie曾一度用於客戶端資料的儲存,因當時並沒有其它合適的儲存辦法而作為唯一的儲存手段,但現在隨著現代瀏覽器開始支援各種各樣的儲存方式,cookie漸漸被淘汰。由於伺服器指定cookie後,瀏覽器的每次請求都會攜帶cookie資料,會帶來額外的效能開銷(尤其是在移動環境下)。新的瀏覽器api已經允許開發者直接將資料儲存到本地,如使用 web storage api (本地儲存和會話儲存)或 indexeddb 。

使用者輸入登陸憑據;

伺服器驗證憑據是否正確,並建立會話,然後把會話資料儲存在資料庫中;

具有會話id的cookie被放置在使用者瀏覽器中;

伺服器驗證憑據是否正確,並建立會話;

在後續請求中,伺服器會根據資料庫驗證會話id,如果驗證通過,則繼續處理;

一旦使用者登出,服務端和客戶端同時銷毀該會話在後續請求中,伺服器會根據資料庫驗證會話id,如果驗證通過,則繼續處理;

使用者輸入登陸憑據;

伺服器驗證憑據是否正確,然後返回乙個經過簽名的token;

客戶端負責儲存token,可以存在localstorage,或者cookie中

對伺服器的請求帶上這個token;

伺服器對jwt進行解碼,如果token有效,則處理該請求;

一旦使用者登出,客戶端銷毀token。

使用者登入成功後,會在伺服器存乙個session,同時傳送給客戶端乙個cookie

資料需要客戶端和伺服器同時儲存

使用者進行操作時,需要帶上cookie,在伺服器進行驗證

cookie是有狀態的

3.2 token
使用者進行任何操作時,都需要帶上乙個token

token的存在形式有很多種,header/requestbody/url 都可以

這個token只需要存在客戶端,伺服器在收到資料後,進行解析

token是無狀態的

3.3總結
token 完全由應用管理,所以它可以避開同源策略。

token 可以避免 csrf 攻擊。

token 可以是無狀態的,可以在多個服務間共享。

json web token 入門教程-阮一峰

cookie和session和token是什麼?

什麼是session?什麼是cookie?什麼是token?1 cookie?由於http是一種無狀態協議,伺服器沒有辦法單單從網路連線上面知道訪問者的身份,為了解決這個問題,就誕生了cookie cookie實際上是一小段的4k文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用re...

cookie和token的區別

前言 cookie和token都是我們經常用到的,昨天我問我乙個同事,他竟然不知道有啥區別,今天就來做個總結吧!token和cookie一樣都是首次登陸時,由伺服器下發,都是當互動時進行驗證的功能,作用都是為無狀態的http提供的持久機制。token存在哪兒都行,localstorage或者cook...

python獲取token和cookie方法

獲取token token為介面引數返回值 coding utf 8 file get token.py api name time 2018 12 11 10 37 author guozhen.deng 獲取token 處理邏輯 傳遞cookie 至http a l.com initiator ...