如何使用 Firebase 刷新令牌保留用户身份验证?

How do I persist user authentication using the Firebase refresh token?

我正在构建一个使用 Firebase phone 用户登录身份验证的 React Native 应用程序。身份验证工作正常,但令牌在一小时后过期。我读到我需要使用刷新令牌来刷新 idToken,但 Firebase docs 上没有任何地方解释如何执行此操作。只说明了如何撤销refresh tokens,我都找不到

我正在使用 react-native-firebase 包。

我的问题是:如何获取刷新令牌、如何使用它以及我是否真的需要每小时调用 Firebase 来更新我的 idToken

我目前的 idToken 是这样的:

const authenticate = async (credential) => {
  try {
    const { user } = await firebase.auth().signInWithCredential(credential);
    const accessToken = await user.getIdToken();
    return accessToken;
  } catch (error) {
    console.log(error);
  }
}

然后我获取令牌并使用 AsyncStorage 将其存储在本地,并在每次启动应用程序时检查令牌是否存在。

提前致谢。

来自https://rnfirebase.io/reference/auth/user#getIdToken 如果令牌已过期,似乎使用 user.getIdToken() 刷新令牌。 如果您想要刷新令牌,即使它仍然有效,您始终可以使用 forceRefresh 选项。