que por ejemplo basada autenticacion acceso sqlite cordova ionic-framework local-storage

sqlite - por - oauth2



Almacenar de forma segura el token de acceso en Córdoba (3)

Editar: ver mi respuesta para la solución

Actualmente, estoy trabajando en una aplicación híbrida con Ionic, donde existe el requisito de almacenar un token de autenticación para mantener al usuario conectado, y también garantizar que no se pueda acceder a estos datos fuera del contexto de la aplicación.

Por supuesto, hay muchas soluciones para esta tarea, cada una con diferentes pros y contras, por lo que es confuso (para mí) localizar la tecnología que mejor se adapte.

He estado buscando angular-localForage y otros candidatos:

Almacenamiento local

  • Opción obvia para pequeños datos.
  • Los datos se borran en iOS cuando el sistema tiene poca memoria.

IndexedDB

WebSQL (SQLite)

  • Al parecer, es una buena opción para datos pequeños y soporte decente (soporte de WebSQL ), pero está en desuso.

SQLite

  • Hay problemas relacionados con Cordova en iOS .

LokiJS

  • Parece una exageración para este escenario, pero definitivamente es un candidato fuerte. ¿Hay algún problema de seguridad que deba tener en cuenta (cuando lo leo localmente persista datos en archivos JSON )?

PouchDB + SQLite

  • Bueno, es un cliente JS para trabajar con las bases de datos CouchDB o Couchbase, que también pueden funcionar con SQLite, pero nuevamente solo necesito almacenar un Token.

Aparentemente, la mejor opción para la compatibilidad cruzada de Android / iOS debería ser irónicamente WebSQL, pero ya no se está desarrollando y tengo que garantizar el soporte a largo plazo.

Entonces mi pregunta es: ¿hay alguna otra opción que me falte para almacenar de manera segura un token de acceso? Si no, ¿cuál de las anteriores debería ser la mejor opción para esta tarea?


Después de investigar un poco, compartiré mi conclusión.

Bastante gracioso, ninguno de los candidatos anteriores es adecuado para almacenar de forma segura un token de acceso. El enfoque debería ser el uso de una solución nativa para Android ( Preferencias compartidas ) e iOS ( Llavero ).

En el caso particular de Ionic, un complemento de broadcaster para Cordova podría usarse para comunicar JS con Native para que pueda acceder a los datos almacenados.


SQLite es la mejor opción, ya que el contenido de DB se codificará y guardará. También las aplicaciones nativas dependen de SQLite para guardar datos. Para facilitar CRUD con SQLite, he creado una biblioteca contenedora. Por favor revisalo aqui


Vaya a LocalStorage, es la mejor manera de almacenar