如何在SSR Nuxt.js应用程序中管理Firebase身份验证中的用户状态?

时间:2018-02-12 11:43:42

标签: vue.js firebase-authentication google-cloud-functions firebase-hosting nuxt.js

正如标题所示,如何在SSR Nuxt.js应用程序中管理Firebase身份验证中的用户状态?成功登录后,应满足以下条件:

  • 用户应该能够在导航时访问受保护的资源 页面之间
  • 用户应该能够重新加载浏览器并仍然可以登录 应用。不应将它们重定向到登录屏幕
  • Firebase的default behaviour将持久保存用户的会话 甚至在用户关闭浏览器之后。用户不应该这样做 如果他们关闭浏览器并重新打开,请再次登录该应用程序 它以及何时仍有有效的Firebase用户

1 个答案:

答案 0 :(得分:3)

我能够通过使用以下方法解决此问题:

  • Express服务器 - 使用axios帖子管理接收时的登录信息 请求在会话中保存用户ID并保存访问令牌 在一个cookie
  • Vuex - 在我的Nuxt应用程序中轻松存储用户状态
  • Nuxt服务器中间件 - 用于检查身份验证的状态 服务器上的用户。在会话中查找用户ID或 访问在登录时创建的cookie中的令牌

可以在此GitHub repository中找到包含此方案的正常运行示例的代码。

我还写了一篇关于项目中使用的所有重要文件的更详细的blog entry