簡體   English   中英

為每個Web應用程序生成唯一的本地存儲密鑰

[英]Generate a unique local storage key per web app

我正在制作一個NPM軟件包,該軟件包需要將信息保存在瀏覽器本地存儲中,以供Angular,React和Vue等Web框架使用。 問題是我不知道如何正確生成密鑰。 我正在考慮生成要保存為本地存儲密鑰的UUID,但是如果用戶使用同一Web應用程序打開兩個窗口,則它們將生成兩個不同的UUID,因此它們將具有不同的存儲。 我還考慮過僅使用一個已編碼的名稱,因為在域之間不共享localstorage,但是如果用戶正在localhost中測試其應用程序,則可以將存儲與他也在localhost中測試的其他應用程序混合使用。 是否可以知道誰在調用我的包裹,所以我可以用它生成本地存儲密鑰? 我不想在開發人員使用我的軟件包時要求其提供唯一的本地存儲密鑰!

不知道您的完整用例,很難說,但是如果我理解正確的話,您想創建一個包,我將其稱為fooLib ,您擔心的是該項目是否在projAprojB

如果您使用靜態鍵,例如fooLibKey

  • projAprojB都將使用相同的存儲

如果您使用動態生成的密鑰,例如UUID:

  • 每次重新加載頁面時,您都會丟失商店。

我懷疑您應該做的是允許依賴項目( projAprojB等)配置密鑰:

// in projA
import fooLib from 'foo-lib'

fooLib.init({
  keyName: 'projAFooLib',
})

沒有可靠的方法來獲取客戶端程序包的名稱。 在Node項目中,您可以一直走下去,直到找到package.json文件並嘗試從中進行推斷,但這是非常冒險的,並且在基於瀏覽器的項目中沒有真正的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM