我正在使用HTML 5本地存储API来存储用户的访问令牌。然后,请求会附加此令牌以访问我的服务器端API。我想知道我是否需要命名我使用的键。浏览器是否会处理此问题,还是需要将密钥称为“my-awesome-app-token”?我注意到Twitter为一些搜索参数做了这个。
顺便说一句,我知道将令牌存储在那里并不安全,但安全性在这里并不重要,问题是关于命名空间键。谢谢!
答案 0 :(得分:14)
答案 1 :(得分:4)
不,你不需要这样做,每个子域都有一个localStorage。
答案 2 :(得分:4)
我发现到目前为止,关于这个问题的每个答案都告诉你,你不需要"命名空间"你的本地存储密钥。我不太确定这是对的。
假设您开发了一个应用程序,并且需要运行该应用程序的多个实例。这可以是测试和生产系统,也可以是多个测试系统。无论如何,如果这些应用程序在相同的协议/服务器/端口上运行,但具有不同的URL,则它们将可以访问相同的本地存储。
如果您的密钥使用任何其他开发人员可能使用的名称,例如" user"," data"," cache",您最终可能会从以下位置读取localstorage另一个应用程序。如果该应用程序在同一台服务器上运行。
可以肯定的是,如果你想在同一台服务器上运行多个实例,你可能不会在你的密钥上使用app-prefix,也可能使用app-id。
如果我误解了localstorage的工作方式,请纠正我。
答案 3 :(得分:1)
其他答案解决了跨应用程序命名空间,但在同一应用程序使用的不同库的情况下,命名空间也很重要。如果您正在开发这样的库,那么它可能会尊重其他库开发人员(甚至您未来的自己)来命名库的存储使用。
今晚我遇到的一个例子是使用存储密钥nonce
。如果多个库都尝试在同一个应用中使用nonce
,则会出现问题。如果您正在开发供其他开发人员使用的库,那么最好提供一个前缀选项:myapilib_
+ nonce
。