我如何在React Native中获取刷新令牌

问题描述 投票:0回答:1

我的 React Native 应用程序中遇到了 Google 登录令牌过期的问题。尽管我尝试解决它,但我还没有成功。我知道获取刷新令牌是适当的解决方案,但我不确定如何实现它。

我尝试在令牌过期时注销用户,但我知道这不是正确的方法。相反,我想获取刷新令牌来自动刷新访问令牌,而不需要用户再次登录。

有人可以指导我如何在 React Native 中获取和使用刷新令牌来进行 Google 登录吗?我进行了广泛的搜索,但尚未找到明确的解决方案。任何帮助将不胜感激。

reactjs firebase react-native google-signin
1个回答
0
投票

终于找到解决办法了

 const getTokens = async () => {
  const data = await AsyncStorage.getItem("AccessToken");

  const parts = data
    .split(".")
    .map((part) =>
      Buffer.from(
        part.replace(/-/g, "+").replace(/_/g, "/"),
        "base64"
      ).toString()
    );

  const payload = JSON.parse(parts[1]);

  console.log(Math.floor(Date.now() / 1000), "JWT payload", payload?.exp);
  Math.floor(Date.now() / 1000) >= payload?.exp
    ? refreshGoogleToken()
    : console.log("your token is up to date");
};

我解码令牌并得到

exp
,这给了我令牌过期时间戳,如果令牌过期,那么我刷新令牌

npm i buffer

您可以使用上面的缓冲区库来解码令牌

© www.soinside.com 2019 - 2024. All rights reserved.