React Native 在本地存储用户数据

React Native store userdata locally

我想存储例如本地用户的密码和用户名,用户并不总是需要再次登录。

我刚刚看到教程 但没有办法将 json 与数据存储在例如一个普通的文件夹。有什么好处或好处是什么?编译应用程序时看起来如何?会不会有错误? :)

例子:

user {
     "name":"max",
     "password":"123456"
}

(我知道以纯文本形式存储密码并不聪明,这只是一个例子:D)

您可以使用这个 react-native-fs 包。如您所知,存储用户名和密码并不是一个好的解决方案。 AsyncStorage 可用于为应用程序上下文存储用户数据。如果是图像或特定文件(如 PDF 等),则存储文件很好...,其中有大量数据要存储。 AsyncStorage 或其他安全存储对您可以保存的数据大小有限制。

我建议您使用 AsyncStorage。它也可以在本地存储 json 数据以及普通数据。 如果您正在努力添加“记住登录”,请使用此逻辑 - 一旦用户登录应用程序,就将数据存储在 AsyncStorage 中 AsyncStorage.setItem()

DemoLogin.js

login = (
    username,
    password,
  ) => {
    axios
      .post(apiEndPoint + "login", {
        username,
        password,
      })
      .then(async (response) => {
        if (response.data) {
          if (response.data.success) {
            this.storeData(response.data);
            this.props.navigation.replace("HomeScreen");
          } else {
            toast.show(response.data.message);
          }
        } else {
          toast.show("There is some issue with API");
        }
      })
      .catch((err) => {
        toast.show("There is some issue with API");
      });
  };

storeData = async (userData) => {
    try {
      await AsyncStorage.setItem("userdata", JSON.stringify(userData));
    } catch (error) {
      console.log("error while storing data", error);
    }
  };