javascript - que - ¿Cuál es la mejor manera de almacenar datos privados en react-native?
react y react native (3)
¿Cuál es la mejor manera de almacenar datos privados en react-native?
Recomendaría usar una biblioteca como react-native-keychain para almacenar datos privados en react-native
Puedes usarlo así:
// Generic Password, service argument optional
Keychain
.setGenericPassword(username, password)
.then(function() {
console.log(''Credentials saved successfully!'');
});
// service argument optional
Keychain
.getGenericPassword()
.then(function(credentials) {
console.log(''Credentials successfully loaded for user '' + credentials.username);
}).catch(function(error) {
console.log(''Keychain couldn/'t be accessed! Maybe no value set?'', error);
});
Espero que mi respuesta haya sido útil 😊
¿Cómo puedo implementar funciones como
remember me
al autenticar a través de la aplicación react?
Creo que
AsyncStorage
no
AsyncStorage
no es la mejor manera de hacerlo, porque los datos están abiertos para los usuarios.
Intenté usar el
realm
, pero me encontré con un problema que no se puede resolver en Android usando
expo
para probar la aplicación.
Dice que necesito compilar código nativo para Android y editarlo (Agregar creación de objetos de dominio en MainApplication.js).
No quiero compilar mi proyecto mientras aún no se haya lanzado.
¿Cómo instagram y las otras aplicaciones RN almacenan datos de autenticación?
¿Cuál es el mejor enfoque?
Puede usar el almacenamiento simple de react-native para guardar el par clave => valor, la siguiente clase en TypeScript puede ayudarlo:
export class MyStorage {
handler: Storage;
constructor(){
this.handler = require(''react-native-local-storage'');
}
public saveData(key: string, value: string){
this.handler.save(key,value).then(() => {
this.handler.get(key).then((data) => {console.log("get: ", data)});
})
}
public getData(key: string) : Promise<any> {
return this.handler.get(key);
}
}
- El método saveData almacena un "valor" al que se puede acceder mediante una "clave".
- getData devuelve la Promesa que envuelve el valor guardado con "clave".
Expo.SecureStore
proporciona una forma de cifrar y almacenar de forma segura pares clave-valor localmente en el dispositivo.
Utilice
SecureStore.setItemAsync(key, value, options)
para almacenar y
SecureStore.getItemAsync(key, options)
para recuperar datos.
Documentación: https://docs.expo.io/versions/latest/sdk/securestore