究竟什麼是token??

2021-09-19 03:14:36 字數 1411 閱讀 4384

我們都是知道http協議是無狀態的,這種無狀態意味著程式需要驗證每一次請求,從而辨別客戶端的身份。在這之前,程式都是通過在服務端儲存的登入資訊來辨別請求的。這種方式一般都是通過儲存session來完成。隨著web,應用程式,以及移動端的興起,這種驗證的方式逐漸暴露出了問題。尤其是在可擴充套件性方面。

seesion:每次認證使用者發起請求時,伺服器需要去建立乙個記錄來儲存資訊。當越來越多的使用者發請求時,記憶體的開銷也會不斷增加。

可擴充套件性:在服務端的記憶體中使用seesion儲存登入資訊,伴隨而來的是可擴充套件性問題。

cors(跨域資源共享):當我們需要讓資料跨多台移動裝置上使用時,跨域資源的共享會是乙個讓人頭疼的問題。在使用ajax抓取另乙個域的資源,就可以會出現禁止請求的情況。

csrf(跨站請求偽造):使用者在訪問銀行**時,他們很容易受到跨站請求偽造的攻擊,並且能夠被利用其訪問其他的**。

在這些問題中,可擴充套件行是最突出的。因此我們有必要去尋求一種更有行之有效的方法。

在web領域基於token的身份驗證隨處可見。在大多數使用web api的網際網路公司中,tokens 是多使用者下處理認證的最佳方式。客戶端頻繁向服務端請求資料,服務端頻繁的去資料庫查詢使用者名稱和密碼並進行對比,判斷使用者名稱和密碼正確與否,並作出相應提示,在這樣的背景下,token便應運而生。

token是服務端生成的一串字串,以作客戶端進行請求的乙個令牌,當第一次登入後,伺服器生成乙個token便將此token返回給客戶端,以後客戶端只需帶上這個token前來請求資料即可,無需再次帶上使用者名稱和密碼。token其實說的更通俗點可以叫暗號,在一些資料傳輸之前,要先進行暗號的核對,不同的暗號被授權不同的資料操作。

token的目的是為了減輕伺服器的壓力,減少頻繁的查詢資料庫,使伺服器更加健壯。

了解了token的意義後,我們就更明確的知道為什麼要用他了。

基於token的身份驗證是無狀態的,我們不將使用者資訊存在伺服器或session中。

這種概念解決了在服務端儲存資訊時的許多問題,nosession意味著你的程式可以根據需要去增減機器,而不用去擔心使用者是否登入。

使用者通過使用者名稱和密碼傳送請求。

程式驗證。

程式返回乙個簽名的token 給客戶端。

客戶端儲存token,並且每次用於每次傳送請求。

服務端驗證token並返回資料。

每一次請求都需要token。token應該在http的頭部傳送從而保證了http請求無狀態。我們同樣通過設定伺服器屬性access-control-allow-origin:* ,讓伺服器能接受到來自所有域的請求。需要主要的是,在acao頭部標明(designating)*時,不得帶有像http認證,客戶端ssl證書和cookies的證書。

究竟什麼是RPC?

究竟什麼是rpc?很多人,很多地方,很多書籍都提到了rpc,那麼究竟什麼是rpc呢?rpc 遠端過程呼叫,是一種允許分布式應用程式呼叫網路上不同計算機的可用服務的機制。rpc服務會在登錄檔中給自己註冊乙個uuid,稱為通用唯一識別符號,這個uuid針對每一項服務都是乙個唯一的值,且在所有的平台上通用...

究竟什麼是推薦?

對推薦的理解總認為水非常深,非常easy走進相近的誤區。以下以電影推薦為例,談一下個人理解。1.推薦不是評分。推薦中一般須要對電影進行評分,可是 推薦 評分 否則,僅僅須要將評分最高的電影推薦給使用者即可了。可是,對於喜愛恐怖電影的人來說,你給他推薦別的型別的電影他也不會喜歡,其它恐怖電影哪怕評分再...

什麼是 token 以及 token 怎麼用

token的引入 token是在客戶端頻繁向服務端請求資料,服務端頻繁的去資料庫查詢使用者名稱和密碼並進行對比,判斷使用者名稱和密碼正確與否,並作出相應提示,在這樣的背景下,token便應運而生。token 的作用 在進行敏感操作之前,每個請求需要攜帶token,但是token 有有效期,token...