我的 React Native 应用程序中遇到了 Google 登录令牌过期的问题。尽管我尝试解决它,但我还没有成功。我知道获取刷新令牌是适当的解决方案,但我不确定如何实现它。
我尝试在令牌过期时注销用户,但我知道这不是正确的方法。相反,我想获取刷新令牌来自动刷新访问令牌,而不需要用户再次登录。
有人可以指导我如何在 React Native 中获取和使用刷新令牌来进行 Google 登录吗?我进行了广泛的搜索,但尚未找到明确的解决方案。任何帮助将不胜感激。
终于找到解决办法了
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
您可以使用上面的缓冲区库来解码令牌