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

Expo环境变量配置问题:敏感信息存储安全性及替代方案咨询

问题解答

1. 先解决Expo无法识别app目录的问题

你添加react-native-dotenv插件的操作和Expo内置的环境变量机制冲突了,导致app目录识别异常。直接把babel.config.js恢复成初始版本即可:

module.exports = function (api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
  };
};

Expo本身支持无需额外Babel插件的环境变量方案,只要给变量加上EXPO_PUBLIC_前缀,就能直接在代码里通过process.env.EXPO_PUBLIC_XXX访问,不用额外导入。

2. 关于SUPABASE相关变量的安全性

你提到的三个变量,完全可以放心用EXPO_PUBLIC_前缀存储:

  • SUPABASE_URL:这是你的Supabase项目公开访问地址,本身就无保密必要。
  • SUPABASE_ANON_KEY:这个密钥是专门给前端客户端设计的,它的权限完全由Supabase的行级安全(RLS)规则控制。只要你正确配置了RLS,即便密钥被公开,攻击者也无法访问你限制的数据。
  • GOOGLE_CLIENT_ID:OAuth的客户端ID本身就是公开属性,前端OAuth流程必须用到它,不存在泄露风险。

Expo官方提示的"不宜存储敏感信息",指的是服务端私钥、数据库密码这类绝对不能暴露的内容,你这三个变量不在此范畴。

3. 替代方案(针对真正敏感的变量)

如果之后需要存储真正的敏感信息(比如Supabase的服务端密钥service_role_key),可以用Expo的Secret Manager功能,把敏感信息存在Expo服务器上,通过Expo的API在运行时获取。但针对你当前的三个变量,完全没必要这么做。

内容的提问来源于stack exchange,提问作者Fergus Johnson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:46:11