Worklight v6: использование нескольких хранилищ JSON одновременно в приложении
Можно ли использовать два или более хранилищ JSON в приложении Worklight одновременно (без переключения туда-сюда)? Когда я инициализирую второе хранилище JSON с именем пользователя / паролем, коллекции в хранилище JSON по умолчанию, которые были правильно инициализированы, становятся недоступными.
Учитывая, что многие функции API-интерфейса хранилища JSON не позволяют указать целевое хранилище, я предполагаю, что одновременное использование нескольких хранилищ невозможно. Если это так, то как обратиться к сценарию использования, где необходимо:
- Шифровать конфиденциальные данные пользователя и
- Требуется доступ к нечувствительным данным до аутентификации пользователя.
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 являются асинхронными, подробнее здесь.