溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue不同項目之間傳遞、接收參數(shù)問題怎么解決

發(fā)布時間:2023-04-27 11:08:24 來源:億速云 閱讀:142 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Vue不同項目之間傳遞、接收參數(shù)問題怎么解決的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Vue不同項目之間傳遞、接收參數(shù)問題怎么解決文章都會有所收獲,下面我們一起來看看吧。

描述一下場景

UC(User-Center)是單獨的一個項目,包括Spring Cloud + Vue, 服務(wù)項目是另一個項目,也是Spring Cloud+ Vue

這里主要針對是登錄操作,我們?yōu)榱送瓿蒘SO(Single Sign On)的效果,認(rèn)證和授權(quán)在UC完成,用戶發(fā)起資源請求,服務(wù)網(wǎng)關(guān)會進(jìn)行過濾,判斷請求頭中是否有token以及token是否過期,不滿足就會帶著原訪問資源項目的主頁(這里記為uri)重定向到登錄頁面,此時就是登錄的相關(guān)操作,進(jìn)行完以后會生成一個token標(biāo)識,這時候要根據(jù)帶來的uri進(jìn)行頁面跳轉(zhuǎn),此時要帶上token標(biāo)識過去。

關(guān)于token的攜帶,以下是幾種方式的分析: 

1.LocalStroage方式 (不可?。?/h3>

如果可以用localStorage來存儲token,這樣就不用來回帶著token信息,直接在服務(wù)項目的vue請求攔截器中把token放到headers里邊就可以了? 事實是不可取的,因為localStorage 只在有相同的協(xié)議、相同的主機(jī)名、相同的端口下,才能讀取/修改到同一份localStorage數(shù)據(jù)。 這里我們是兩個vue項目,所以無法共享token,其次,假如這種方式可以,難道我們訪問百度還能用訪問騰訊時候存的localStorage里邊的標(biāo)識?所以,PASS.

localStorage深入了解:localstorage 必知必會 

2.Cookie方式 (不推薦)

使用Cookie進(jìn)行共享,也就是說在UC的vue項目中,登錄成功,將token存入cookie中,在服務(wù)項目的vue請求攔截器中獲取cookie先存入localStorage中,然后放入headers,這樣之后每次從localStorage中拿出token放入headers即可。實現(xiàn)上是可以的因為cookie在兩個vue項目之間是共享的。但是,不好的點是,其一是如果cookie被禁用了怎么辦?,盡管可以處理但是還是說明這個方法存在一些明顯的不足,其次存cookie是很老套的方式,市面上也很少用到。關(guān)于多個cookie參數(shù),如果獲取某一個cookie值的方法封裝:

 window.getCookie = function(name) {
       var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
       if (match) return match[2];
 }

 存:

 document.cookie = "token=1234";

取:

let token = getCookie('token');

3.參數(shù)形式 (時效性)

直接以參數(shù)形式傳遞,在另一方獲取請求參數(shù),再放入localStorage中??雌饋磉@種方式似乎是最直接的,其實來說它也保證了token的時效性,但是寫的時候可真給我惡心壞了,不說了只能怪咱百度不會用,其實以參數(shù)傳遞的方式還有很多種,可以多使用幾種,這里暫且總結(jié)一種,后序填坑。

傳: 拼到url中

Vue不同項目之間傳遞、接收參數(shù)問題怎么解決

 取:一定是在頁面獲取,無法在請求攔截器取出

Vue不同項目之間傳遞、接收參數(shù)問題怎么解決

關(guān)于“Vue不同項目之間傳遞、接收參數(shù)問題怎么解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Vue不同項目之間傳遞、接收參數(shù)問題怎么解決”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

vue
AI