1、Token:token是客戶端頻繁向服務器端請求資料,服務器頻繁的去資料庫查詢用戶名和密碼進行對比,判斷用戶名和密碼正確與否,并作出相應的提示,在這樣的背景下,token便應運而生了,
2、使用token的目的:token的目的是為了減輕服務器的壓力,減少頻繁的查詢資料庫,
3、在前端請求后臺的API介面的時候,為了安全性,一般需要再用戶登錄成功之后才能發送其他請求,
因此,在用戶登錄成功之后,后臺會回傳一個token給前端,這個時候我們就需要把token暫時保存在本地,每次發送請求的時候需要在header里邊帶上token(無需再次帶上請求名和密碼),這個時候本地的token和后臺資料庫中的token進行一個驗證,如果兩者一致,則請求成功,否則失敗,
4、如何使用token?
①使用設備號/設備mac地址作為token(推薦)
客戶端:客戶端在登錄的時候獲取設備的設備號/mac地址,并將其作為引數傳遞到服務器端
服務器:服務器接收到該引數之后,使用一個變數接收同時將其作為token保存資料庫,并將該token設定在session中,客戶端每次請求的時候都要統一攔截,并將客戶端傳遞的token和服務器session中的token對比,如果相同則放下,不同則拒絕
優點:客戶端不需要重新登錄,只要登錄一次后就能一直使用
缺點:客戶端需要帶設備號/mac地址作為引數傳遞
②用session值作為token
客戶端:客戶端只需要攜帶用戶名和密碼即可登錄
服務端:客戶端接收到用戶名和密碼后并判斷,如果正確就將本地獲取sessionId作為token回傳給客戶端,客戶端以后只需要帶上請求資料即可
登錄成功的token:

其他請求的時候,在header里面帶上token:

js使用cookie保存token(cookie在http請求中,隨著請求發送到服務器)
將token保存在cookie中,一旦瀏覽器關閉,cookie中的token就會被清空,
document.cookie = token; //將token保存在cookie中
var token = document.cookie.split(";")[0]; //從cookie中讀取token
js使用sessionStorage保存token
sessionStorage.setItem("key","value"); //保存資料到sessionStorage
var data = https://www.cnblogs.com/zmdComeOn/p/sessionStorage.getItem("key"); //獲取資料
sessionStorage.removeItem("key"); //洗掉資料
sessionStorage.clear(); //洗掉保存的所有資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/85306.html
標籤:JavaScript
下一篇:SpringBoot + Vue + ElementUI 實作后臺管理系統模板 -- 前端篇(一):搭建基本環境
