Worklight v6: использование нескольких хранилищ JSON одновременно в приложении

Можно ли использовать два или более хранилищ JSON в приложении Worklight одновременно (без переключения туда-сюда)? Когда я инициализирую второе хранилище JSON с именем пользователя / паролем, коллекции в хранилище JSON по умолчанию, которые были правильно инициализированы, становятся недоступными.

Учитывая, что многие функции API-интерфейса хранилища JSON не позволяют указать целевое хранилище, я предполагаю, что одновременное использование нескольких хранилищ невозможно. Если это так, то как обратиться к сценарию использования, где необходимо:

  1. Шифровать конфиденциальные данные пользователя и
  2. Требуется доступ к нечувствительным данным до аутентификации пользователя.

1 ответ

Решение

Поле имени пользователя, которое вы передаете init, в основном является именем файла для хранилища, например:

WL.JSONStore.init(..., {username: 'store1'})

У вас будет store1.sqlite на диске, без шифрования. Если вы хотите перейти в другой магазин, просто позвоните:

WL.JSONStore.closeAll()

Функция closeAll уничтожит все средства доступа к базе данных. Затем вы можете открыть второй магазин с паролем, например:

WL.JSONStore.init(..., {username: 'store2', password: '123'})

Это создаст файл store2.sqlite, зашифрованный 256-битным шифрованием AES.

Если вы хотите вернуться в store1, просто позвоните WL.JSONStore.closeAll() а потом WL.JSONStore.init(..., {username: 'store1'}),

В настоящее время вы не можете получить доступ к store1 и store2 одновременно. Вы можете открыть запрос на функцию здесь.

Файлы.sqlite упоминаются здесь, если вы хотите видеть их в файловой системе, и здесь упоминается немного об их внутренней структуре. Приведенные выше фрагменты кода не показывают его, но убедитесь, что вы учли, что большинство функций API JSONStore являются асинхронными, подробнее здесь.

Другие вопросы по тегам