Ionic - хранить зашифрованные значения в локальном хранилище

Пример использования: находясь в сети, пользователь запускает приложение Ionic, которое запрашивает имя пользователя и пароль. Учетные данные проверяются на сервере, и пользователю разрешается войти в систему. Кроме того, зашифрованный пароль хранится локально (ipad). В автономном режиме вместо проверки на сервере проверьте учетные данные по зашифрованному паролю, хранящемуся локально.

Что работает Возможность использовать библиотеку crypto-js в Ionic для шифрования пароля.

var encryptedMessage = CryptoJS.AES.encrypt(password, secretkey);

Что не работает. Теперь я пытаюсь использовать библиотеку angular-local-storage, чтобы сохранить ее в локальном хранилище.

localStorageService.set('pwdkey', encryptedMessage );

Это дает мне ошибку ниже

TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at toJson (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14637:15)
    at Object.addToLocalStorage (http://localhost:8100/lib/angular-local-storage/dist/angular-local-storage.js:158:19)
    at encryptAndStore (http://localhost:8100/js/controllers.js:550:27)

Тот же код отлично работает, если я передаю незашифрованную строку вместо зашифрованного пароля. Итак, это как-то связано с зашифрованными данными.

Как я могу хранить зашифрованные данные в локальном хранилище?


person kayasa    schedule 05.08.2016    source источник


Ответы (1)


Проблема была решена с помощью метода .toString ()

CryptoJS.AES.encrypt(password, secretkey).toString()

Таким образом я смог сохранить строку, а затем вернуть ее и расшифровать.

person kayasa    schedule 09.08.2016
comment
Спасибо! Работает для меня, это сводило меня с ума - person Jonathan; 04.05.2019