next.js 使用accessToken的Firebase身份验证问题

ia2d9nvy  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(117)

我正在尝试在我的React应用程序中使用Firebase身份验证。成功认证后,我需要在每次API调用中将accessToken传递给我的后端,以便后端可以验证有效的令牌。但我面临的问题是,当我在我的主页,并试图重新加载页面,我写了一个useEffect将调用我的user details API。但在这里,当我尝试auth1.currentUser?.getIdToken(true)时,它将返回null。或者,如果我像下面这样尝试,则甚至在获取用户详细信息之前就调用了API调用

useEffect(() =>{
const auth1 = getAuth();
   const token = auth1.onAuthStateChanged(async (user: any) => {
   console.log({user});
   const idToken = await user?.getIdToken();
   console.log('authToken', {idToken});
   return localStorage.getItem('token');
  });
//api call for userdetails
},[])

谁能给予一个例子来说明流程应该是怎样的?这种情况可能发生在我所有的页面重新加载

vlurs2pr

vlurs2pr1#

我尝试重新加载页面,我写了一个useEffect,它会调用我的用户详细信息API。但是在这里,当我尝试auth1.currentUser?.getIdToken(true)时,它将作为null出现。
正如文档中所解释的,如果重新加载页面,Auth对象可能处于“中间状态,例如初始化”。
您应该在Auth对象上使用观察者(使用onAuthStateChanged()方法)来获取当前用户,如同一文档中所述。

相关问题