You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo是否支持react-native-encrypted-storage?基于Expo的RN如何存储敏感数据?

问题解答与错误修复

1. Expo是否支持react-native-encrypted-storage?

react-native-encrypted-storage是依赖原生代码实现的第三方库,Expo的两种工作流支持情况不同:

  • 托管工作流(Managed Workflow):不支持直接使用。因为托管流由Expo负责维护原生项目,无法添加自定义原生模块,这也是你出现RNEncryptedStorage is undefined错误的核心原因。
  • 裸工作流(Bare Workflow):可以集成,但需要手动完成iOS和Android原生项目的配置(比如添加依赖、配置权限等)。

2. Expo构建的React Native应用存储敏感Token的方案

Expo官方推荐使用Expo Secure Store存储敏感数据(如用户Token、密钥等),它会自动利用iOS的Keychain和Android的Keystore进行加密存储,安全性有保障,且同时支持托管和裸工作流。

具体使用步骤:

  1. 安装依赖:
npx expo install expo-secure-store
  1. 替换原有代码为Secure Store的API:
import * as SecureStore from 'expo-secure-store';

// 获取Token
const getToken = async () => {
  const token = await SecureStore.getItemAsync('user-token');
  return token;
};

// 删除Token
const deleteToken = async () => {
  await SecureStore.deleteItemAsync('user-token');
};

关于RNEncryptedStorage is undefined错误的修复

这个错误是因为你在Expo托管工作流中使用了需要原生配置的react-native-encrypted-storage库,托管流无法加载该库的原生模块。直接替换为上述的Expo Secure Store即可解决问题,无需额外原生配置。

内容的提问来源于stack exchange,提问作者Murat Polat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:12:36