欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端token中4個(gè)存儲(chǔ)位置的優(yōu)缺點(diǎn)說(shuō)明

 更新時(shí)間:2022年10月13日 09:27:07   作者:燕穗子博客  
這篇文章主要介紹了前端token中4個(gè)存儲(chǔ)位置的優(yōu)缺點(diǎn)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、token是什么 

Token: 訪問(wèn)資源的憑證。

一般用戶通過(guò)用戶名密碼登錄后,服務(wù)端會(huì)將登錄憑證做數(shù)字簽名,加密之后的字符串作為Token。

并在客戶端后面的向服務(wù)端的請(qǐng)求中攜帶,作為憑證。

二、token一般存放在哪里?

token 在客戶端一般存放于localStorage、cookie、或sessionStorage,vuex中。

1、localStorage

  • 優(yōu)點(diǎn): localStorage 生命周期是永久,這意味著除非用戶顯示在瀏覽器提供的UI上清除localStorage信息,否則這些信息將永遠(yuǎn)存在。相同瀏覽器的不同頁(yè)面間可以共享相同的localStorage (頁(yè)面屬中相可域名和端口)。
  • 缺點(diǎn):同一個(gè)屬性名的數(shù)據(jù)會(huì)被替換,不同瀏覽器無(wú)法共享localStorage或sessionStorage中的信息。

2、sessionStorage

  • 優(yōu)點(diǎn): sessionStorage生 命周期為當(dāng)前窗口或標(biāo)簽頁(yè),sessionStorage的數(shù)據(jù)不會(huì)被其他窗口清除,頁(yè)面及標(biāo)簽頁(yè)僅指頂級(jí)窗口,如果一個(gè)標(biāo)簽頁(yè)包含多個(gè)iframe標(biāo)簽且他們屬于同源頁(yè)面,那么他們之間是可以共享sessionStorage的。
  • 缺點(diǎn):一旦窗口或標(biāo)簽頁(yè)被永久關(guān)閉了,那么所有通過(guò)sessionStorage存儲(chǔ)的數(shù)據(jù)也就被清空了。

將token存放在webstroage中,可以通過(guò)同域的js來(lái)訪問(wèn)。這樣會(huì)導(dǎo)致很容易受到 XSS攻擊,特別是項(xiàng)目中引入很多 第三方j(luò)s類庫(kù)的情況下。如果js腳本被盜用,攻擊者就 可以輕易訪問(wèn)你的網(wǎng)站,webStroage作為一種儲(chǔ)存機(jī)制,在傳輸過(guò)程中不會(huì)執(zhí)行任何安全標(biāo)準(zhǔn)。

XSS攻擊:cross-site Scripting (跨站腳本攻擊) 是一種注入代碼攻擊。惡意攻擊者在目標(biāo)網(wǎng)站生注入script代碼,當(dāng)訪問(wèn)者瀏覽網(wǎng)站的時(shí)候通過(guò)執(zhí)行注入的script代碼達(dá)到竊取用戶信息,盜用用戶身份等。

3、存儲(chǔ)在cookie 中

讓它自動(dòng)發(fā)送,不過(guò)缺點(diǎn)就是不能跨域

將token存放在cookie中可以指定httponly,來(lái)防止被javascript讀取,也可以指定secure ,來(lái)保證token只在HTTPS下傳輸。缺點(diǎn)是不符合Restful 最佳實(shí)踐,容易受到CSRF攻擊。

CSRF跨站點(diǎn)請(qǐng)求偽造(Cross-Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性。

簡(jiǎn)單來(lái)說(shuō)就是惡意攻擊者盜用已經(jīng)認(rèn)證過(guò)的用戶信息,以用戶信息名義進(jìn)行一些操作(如發(fā)郵件、轉(zhuǎn)賬、購(gòu)買商品等等)。由于身份已經(jīng)認(rèn)證過(guò),所以目標(biāo)網(wǎng)站會(huì)認(rèn)為操作都是真正的用戶操作的。CSRF并不能拿到用戶信息,它只是盜用的用戶憑證去進(jìn)行操作。

4、Vuex

  • 優(yōu)點(diǎn):vuex的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,保密性較高
  • 缺點(diǎn):刷新頁(yè)面(這里 的刷新頁(yè)面指的是--> F5刷新,屬于清除內(nèi)存了)時(shí)vuex存儲(chǔ)的值會(huì)丟失

總結(jié):也就是說(shuō),localStorage可存儲(chǔ)持久化的數(shù)據(jù);sessionStorage僅限于當(dāng)前窗口;vuex可存儲(chǔ)保密性較高的數(shù)據(jù),但刷新頁(yè)面后數(shù)據(jù)會(huì)被清除.

三、token基本流程

(1)用戶登陸,發(fā)送手機(jī)號(hào)碼和驗(yàn)證碼

(2)后臺(tái)接收參數(shù),查找用戶,用戶存在就生成token,返回給前端

(3)前端登陸成功,把token存到vuex(做持久化)

(4)使用axios攔截器,讀取vuex中的token,并放入請(qǐng)求頭

(5)請(qǐng)求其他接口,就會(huì)帶上token

(6)后臺(tái)在需要登陸的接口上,獲取token,解密token獲得userId,返回前端需要的數(shù)據(jù)

(7)用戶在下次使用app,如果token還在有效期內(nèi),不需要重新登陸

客戶端使用用戶名跟密碼去請(qǐng)求登陸,服務(wù)度段收到請(qǐng)求,去驗(yàn)證用戶名和密碼,驗(yàn)證成功后,服務(wù)端會(huì)簽發(fā)一個(gè)token,再把這個(gè)token發(fā)送給客戶端,客戶頓收到token之后能夠把它存儲(chǔ)起來(lái),

好比放在cookie里面或者local storage里面,客戶端每次向服務(wù)端請(qǐng)求資源的時(shí)候須要帶上服務(wù)端簽發(fā)的token,服務(wù)端收到請(qǐng)求,而后去驗(yàn)證客戶端請(qǐng)求里面帶著的token,若是驗(yàn)證成功,以某種方式好比隨機(jī)生成32位的字符串做為token,存儲(chǔ)在服務(wù)器中,并返回token到APP,

之后APP請(qǐng)求時(shí),凡是須要驗(yàn)證的地方都要帶上該token,而后服務(wù)端驗(yàn)證token,成功返回所須要的結(jié)果,失敗返回錯(cuò)誤信息,從新登陸,服務(wù)器上的token設(shè)置一個(gè)有效期,每次APP請(qǐng)求時(shí)都要驗(yàn)證token和有效期。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue實(shí)現(xiàn)快捷鍵錄入功能的示例代碼

    Vue實(shí)現(xiàn)快捷鍵錄入功能的示例代碼

    有的時(shí)候項(xiàng)目需要在頁(yè)面使用快捷鍵,而且需要對(duì)快捷鍵進(jìn)行維護(hù)。本文將為大家展示Vue實(shí)現(xiàn)快捷鍵錄入功能的示例代碼,感興趣的可以了解一下
    2022-04-04
  • 關(guān)于@click.native中?.native?的含義與使用方式

    關(guān)于@click.native中?.native?的含義與使用方式

    這篇文章主要介紹了關(guān)于@click.native中?.native?的含義與使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 在 Vue 中使用 JSX 及使用它的原因淺析

    在 Vue 中使用 JSX 及使用它的原因淺析

    這篇文章主要介紹了在 Vue 中使用 JSX 及使用它的原因淺析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • vue3父組件和子組件如何傳值實(shí)例詳解

    vue3父組件和子組件如何傳值實(shí)例詳解

    近期學(xué)習(xí)vue3的父子組件之間的傳值,發(fā)現(xiàn)跟vue2.x的父子組件之間的傳值并沒(méi)有太大的區(qū)別,下面這篇文章主要給大家介紹了關(guān)于vue3父組件和子組件如何傳值的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 一文詳解Vue的響應(yīng)式原則與雙向數(shù)據(jù)綁定

    一文詳解Vue的響應(yīng)式原則與雙向數(shù)據(jù)綁定

    使用 Vue.js 久了,還是不明白響應(yīng)式原理和雙向數(shù)據(jù)綁定的區(qū)別?今天,我們就一起來(lái)學(xué)習(xí)一下,將解釋它們的區(qū)別,快跟隨小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 手把手教你用vue3開(kāi)發(fā)一個(gè)打磚塊小游戲

    手把手教你用vue3開(kāi)發(fā)一個(gè)打磚塊小游戲

    這篇文章主要給大家介紹了關(guān)于如何利用vue3開(kāi)發(fā)一個(gè)打磚塊小游戲的相關(guān)資料,通過(guò)一個(gè)小游戲?qū)嵗梢钥焖倭私鈜ue3開(kāi)發(fā)小游戲的流程,需要的朋友可以參考下
    2021-07-07
  • 基于Vue實(shí)現(xiàn)樹(shù)形穿梭框的示例代碼

    基于Vue實(shí)現(xiàn)樹(shù)形穿梭框的示例代碼

    這篇文章主要為大家介紹了如何利用Vue實(shí)現(xiàn)一個(gè)樹(shù)形穿梭框,elementUI和ant-d組件庫(kù)的穿梭框組件效果都不是很好,所以本文將利用一個(gè)新的插件來(lái)實(shí)現(xiàn),需要的可以參考一下
    2022-04-04
  • vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解

    vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解

    這篇文章主要介紹了vue 導(dǎo)航錨點(diǎn)_點(diǎn)擊平滑滾動(dòng),導(dǎo)航欄對(duì)應(yīng)變化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • vue實(shí)現(xiàn)橫向斜切柱狀圖

    vue實(shí)現(xiàn)橫向斜切柱狀圖

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)橫向斜切柱狀圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue2導(dǎo)航根據(jù)路由傳值,而改變導(dǎo)航內(nèi)容的實(shí)例

    vue2導(dǎo)航根據(jù)路由傳值,而改變導(dǎo)航內(nèi)容的實(shí)例

    下面小編就為大家?guī)?lái)一篇vue2導(dǎo)航根據(jù)路由傳值,而改變導(dǎo)航內(nèi)容的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論