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

React Native 中 Firebase auth() 用户会话在iOS和Android的存储位置是什么?

React Native Firebase Auth 会话存储说明

以下内容针对官方推荐的@react-native-firebase/auth(原生封装版Firebase SDK):

注意:如果你在React Native中使用Web版Firebase JS SDK,会话默认会存储在AsyncStorage中,无系统级加密,安全性更低,不推荐生产环境使用。

Firebase Auth的用户会话默认由原生SDK层实现持久化存储,不需要开发者手动处理存储逻辑,所有敏感认证数据都经过加密存储,不会明文暴露。

iOS 平台存储规则

  • 存储位置:用户会话默认存储在系统*钥匙串(Keychain)*中,属于系统级加密存储区域。如果没有开启跨设备iCloud钥匙串同步,应用卸载时对应会话数据会同步清除。
  • 存储内容:加密保存用户的刷新令牌(refresh token)、ID令牌(ID token)、用户UID等核心认证信息,所有数据默认仅当前应用可读取,开启钥匙串共享权限后可实现同开发者账号下关联应用的会话互通。
  • 有效性:存储的会话在应用重启、系统重启后都可以正常读取,仅当用户主动调用auth().signOut()、手动卸载应用时才会失效。

Android 平台存储规则

  • 存储位置:用户会话默认存储在基于Jetpack Security加密的EncryptedSharedPreferences中,文件路径为/data/data/[应用包名]/shared_prefs/com.google.firebase.auth.api.Store.xml,所有内容经过AES-256加密,无Root权限无法直接读取明文。
  • 存储内容:同iOS一致,加密保存刷新令牌、ID令牌、用户UID等认证敏感数据,仅当前应用可读取。
  • 有效性:应用卸载时对应存储文件会同步删除,会话失效;应用重启、系统重启不会影响会话有效性,仅主动调用auth().signOut()会清除存储的会话数据。

手动控制会话持久化

你可以通过JS层API主动修改会话持久化策略:

  • 调用auth().setPersistence()修改存储策略,支持三个可选值:
    • firebase.auth.Auth.Persistence.LOCAL:默认值,持久化存储直到用户主动登出
    • firebase.auth.Auth.Persistence.SESSION:仅在当前应用进程生命周期内存活,应用被杀后会话自动清除
    • firebase.auth.Auth.Persistence.NONE:仅内存存储,页面切换/Activity重启后会话自动清除
  • 主动清除所有会话数据直接调用auth().signOut()即可,底层会自动删除双平台存储的所有认证相关内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:24:02