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

时间:2019-08-20 09:41:39

标签: javascript firebase react-native firebase-authentication react-native-firebase

我正在构建一个使用Firebase电话身份验证进行用户登录的React Native应用。身份验证正常,但是令牌在一小时后过期。我已经读到我需要使用刷新令牌来刷新idToken,但是Firebase docs上的任何地方都没有说明如何执行此操作。它仅说明了如何撤消刷新令牌,而我什至找不到它。

我正在使用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将其存储在本地,并在每次启动应用程序时检查令牌是否存在。

谢谢。

1 个答案:

答案 0 :(得分:1)

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