如何发送firebase refreshToken ?反应



这是我第一次使用firebase。(反应应用)我有3个社会认证提供者登录。谷歌,Facebook和苹果。在此之前一切都很好。但1小时后,我的令牌到期,我必须注销和再次登录刷新我的令牌。我将过期时间保存到我的localStorage检查令牌是否过期,如果是,我调用signOut()手动功能。但这并不能解决问题,也不是一个好方法。我找不到如何在firebase中刷新token而且,我是否需要再次检查过期并发送refreshToken,或者我必须在每次页面刷新时刷新token ?

import React from 'react'
import { useHistory } from "react-router";
import auth from "../utils/Auth";
export const useSocialAuth = () => {

const history = useHistory();
const providerFunc = (socialProvider:any) => {
const provider = socialProvider();
provider
.then((result: any) => {
console.log(result)
auth.login(() => {
localStorage.setItem('exp', result.user._delegate.stsTokenManager.expirationTime)
localStorage.setItem("userID", result.user.uid);
localStorage.setItem("tocaToken", result.user.multiFactor.user.accessToken);
history.push("/");
});
})
.catch((err:any) => console.log(err));
}
return providerFunc;
};

我解决了刷新令牌问题。你们都需要加上:

firebase.auth().currentUser.getIdToken(true)

当您从浏览器呼叫时,.getIdToken(true)将自动刷新您的令牌。像这样调用:

firebase.auth().currentUser.getIdToken(/ forceRefresh / true)
.then(function(idToken) {
}).catch(function(error) {
});

更多信息:https://firebase.google.com/docs/reference/js/v8/firebase.User#getidtoken

最新更新