在 Nextjs 中通过 Firebase Auth 使用 Cookie 进行 SSR

问题描述 投票:0回答:1

除了正常的客户端 Firebase 身份验证之外,我还尝试为我的 Nextjs 应用程序使用基于 cookie 的身份验证。我在互联网上阅读过,并且遇到过一些像这样的博客https://dev.to/ariburaco/authentication-with-firebase-in-nextjs-with-ssr-e76,这表明我可以做一些事情像这样来实现我的目标:

useEffect(() => {
   const unsubscribe = onIdTokenChanged(auth, async (user) => {
     if (user) {
       setAdmin(user);
       const token = await user.getIdToken();
       nookies.set(undefined, 'token', token, { path: '/' });
     } else {
       setAdmin(null);
       nookies.set(undefined, 'token', '', { path: '/' });
     }
   });

   return unsubscribe;
 }, []);

但是,当我查看 firebase docs 时,我看到了一种完全不同的方法,其中涉及向服务器发送 cookie 请求。此外,firebase 文档在收到 cookie 后将用户注销,以便从存储中清除客户端令牌。这是否意味着您不能同时使用 cookie 和客户端令牌?或者他们这样做的缺点是什么?

最后,哪种方法是“正确的”?各有什么缺点和优点?

非常感谢任何帮助!

firebase cookies next.js firebase-authentication firebase-admin
1个回答
0
投票

如果有人仍在寻找解决方案,您可以使用 firebase-nextjs。它是一个包,通过处理 cookie 和会话管理等内容,帮助将 firebase auth 与 nextjs 集成。

NPM 包:https://www.npmjs.com/package/firebase-nextjs

© www.soinside.com 2019 - 2024. All rights reserved.