Пространство имен HTML 5 локальных ключей хранения - PullRequest
10 голосов
/ 04 ноября 2010

Я использую API локального хранилища HTML 5 для хранения токена доступа пользователя.Затем запросы добавляют этот токен для доступа к моему API на стороне сервера.Мне интересно, если мне нужно пространство имен ключей, которые я использую.Об этом позаботится браузер, или мне нужно называть ключ как «my-awesome-app-token»?Я заметил, что Twitter делает это для некоторых параметров поиска.

Кстати, я знаю, что хранить токен там небезопасно, но безопасность здесь не важна, вопрос в том, что касается ключей пространства имен.

Ответы [ 4 ]

15 голосов
/ 04 ноября 2010

Об этом позаботится браузер:

http://dev.w3.org/html5/webstorage/#dom-localstorage:

Пользовательские агенты должны иметь набор локальных областей хранения, по одной для каждого источника.

4 голосов
/ 26 марта 2016

Я вижу, что каждый ответ на этот вопрос пока говорит вам, что вам не нужно "именовать" свои локальные ключи хранилища.Я не уверен, что это правильно.

Допустим, вы разрабатываете приложение, и вам нужно запустить несколько экземпляров этого приложения.Это может быть тестовая и производственная система или несколько тестовых систем.В любом случае, если эти приложения работают на одном и том же протоколе / сервере / порте, но с другим URL-адресом, они будут иметь доступ к одному и тому же локальному хранилищу.

если ваши ключи используют имена, которые любой другой разработчик может использовать, например, «пользователь», «данные», «кэш», вы можете в конечном итоге прочитать локальное хранилище из другого приложения.Если это приложение работает на том же сервере.

Конечно, вы можете не использовать префикс приложения для ваших ключей и, возможно, также идентификатор приложения, если вы хотите запустить несколько экземпляров натот же сервер.

Если я неправильно понял, как работает localalstorage, поправьте меня.

4 голосов
/ 25 ноября 2010

Нет, вам не нужно это делать, по одному localStorage на каждый поддомен.

1 голос
/ 26 января 2017

Другие ответы относятся к пространствам имен между приложениями, но пространства имен также важны в случае использования разных библиотек одним приложением.Если вы разрабатываете такую ​​библиотеку, другим разработчикам библиотек (или даже вам самим), вероятно, будет с уважением выделять пространство хранения вашей библиотеки.

Пример, с которым я столкнулся сегодня вечером, использует ключ хранения nonce,Если бы несколько библиотек пытались использовать nonce в одном приложении, это было бы проблематично.Если вы разрабатываете библиотеку для использования другими разработчиками, было бы неплохо предоставить параметр префикса: myapilib_ + nonce.

...