gpt4 book ai didi

reactjs - Firebase 身份验证 : getIdToken on every fetch or set cookie?

转载 作者:行者123 更新时间:2023-12-04 02:34:17 26 4
gpt4 key购买 nike

我目前正在开发一个 Next.js (React) 项目,我使用 Firebase Auth 进行身份验证。我使用它连接到 REST API 后端,该后端接收 Firebase 提供的用户 token (通过 getIdToken() )。
因为 IdToken 时不时地发生变化,所以我目前在发送 fetch 之前请求最新的 IdToken像这样的请求:

  const fetcher = (url: string) => {
return user.getIdToken().then((token) =>
fetch(url, {
method: "GET",
headers: new Headers({
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
}),
}).then((res) => res.json())
);
};
这个设置确实有效,但我想知道它是否被认为是有效/最佳实践?
我看到很多使用 IdToken 设置 cookie 的示例(例如 firebase docsnext.js example )。
我明白为什么在使用 SSR 时,因为 getIdToken()不能在那里调用。但我的应用程序只使用客户端数据获取。放弃目前使用 cookie 的方法对我有什么好处吗?

最佳答案

Firebase 身份验证 SDK 已将 token 缓存在本地存储中,因此您无需再次将其缓存在其他地方。
实际上, token 每小时刷新一次,Firebase Authentication SDK 会在后台自动刷新它。如果您自己缓存 token ,您最终可能会使用过时的 token 。
所以我建议总是调用getIdToken()当您需要 ID token 时。当然,可以将它存储在一个变量中,并在单个代码块中使用它(几乎同时运行的代码)。
使用 cookie 将 token 传递给您的服务器很好,使用 Authorization 也是如此。就像你现在做的那样。后者更常见,但 cookie 也可以。

关于reactjs - Firebase 身份验证 : getIdToken on every fetch or set cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573086/

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