gpt4 book ai didi

android - react native Firebase : Token refresh not working

转载 作者:行者123 更新时间:2023-12-04 01:44:11 30 4
gpt4 key购买 nike

我的 react-native-firebase(或 firebase)存在问题,我的应用在身份验证 token 刷新后未收到触发器。这与 [1] 的问题几乎相同,但他们从未发布过解决方案。

所以,在 Android 手机和 Android 模拟器(不了解 iOS)上,注册、登录和注销都能完美运行,这意味着听众正确地看到我执行 logout () 等。但是当 token 刷新时监听器从不触发。

我的第一个问题是:我是否正确假设 onIdTokenChanged-listener 应该在 60 分钟后自动触发而无需执行任何其他操作,例如调用任何 firebase 函数,让应用程序在 60 分钟内无所事事,然后接收事件并替换 token ?

包含监听器的主要组件如下所示:

class ReduxAppWrapper extends Component {

componentDidMount() {
firebase.auth().onAuthStateChanged((user) => {
console.log('COMP DID MOUNT: AUTH STATE CHANGED! ' + JSON.stringify(user));
});
firebase.auth().onIdTokenChanged((user) => {
console.log('COMP DID MOUNT: TOKEN CHANGED! ' + JSON.stringify(user));
});
firebase.auth().onUserChanged((user) => {
console.log('COMP DID MOUNT: USER CHANGED! ' + JSON.stringify(user));
});
};

render() {
return (
<ReduxProvider store={store}>
<MenuProvider>
<PaperProvider>
<AppContainer />
</PaperProvider>
</MenuProvider>
</ReduxProvider>);
}
}

通常在监听器内部,我有一个调度 redux-action 的函数,以便在我的组件之间广播身份验证信息。在这些组件中,我使用 jwt token 向后端发送 http 请求。

现在后端当然使用 firebase 来验证该 token (这是在检索过时的 jwt 后 60 分钟后出现问题的地方),但我认为我认为问题出在应用程序内是正确的,因为刷新不会发生。

如果有人能指出我在哪里看,我会非常高兴,我还尝试在 firebase 控制台中找出是否发送了 token 刷新事件,但我找不到任何相关信息。

所以基本上:

1) 我是否可以假设 firebase.auth().onIdTokenChanged() 函数应该在我不做任何其他事情的情况下被调用?或者在主组件中定义一次监听器是否不够(也考虑到由于堆栈导航,其他屏幕将在其之上呈现这一事实)。

2) 如果代码没问题,你有什么提示可以去哪里看吗?

非常感谢!

[1] https://github.com/invertase/react-native-firebase/issues/531

最佳答案

对于遇到相同问题的任何人,我最终都会在每次需要 token 时询问 firebase 询问 token 。我仍然认为这没有必要,但我不想再花时间分析为什么刷新没有自动工作。所以我在应用程序中所做的是

firebase.auth().currentUser.getIdToken().then((token) => {
fetch(url, {
method: 'GET',
headers: { Authorization: token }
})
}

¯\_(ツ)_/¯

关于android - react native Firebase : Token refresh not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55964895/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com