【问题标题】:How to manage user state in Firebase authentication within a SSR Nuxt.js application?如何在 SSR Nuxt.js 应用程序中管理 Firebase 身份验证中的用户状态?
【发布时间】:2018-07-22 13:52:45
【问题描述】:
正如标题所示,如何在 SSR Nuxt.js 应用程序中管理 Firebase 身份验证中的用户状态?登录成功后应满足以下条件:
- 用户在导航时应该能够访问受保护的资源
页面之间
- 用户应该能够重新加载浏览器并且仍然可以登录
应用。不应将它们重定向到登录屏幕
- Firebase 的default behaviour 是为了持久化用户的会话
即使在用户关闭浏览器之后。用户不必
如果他们关闭浏览器并重新打开,请再次登录应用程序
并且当仍有有效的 Firebase 用户可用时
【问题讨论】:
标签:
vue.js
firebase-authentication
google-cloud-functions
firebase-hosting
nuxt.js
【解决方案1】:
我可以通过以下方式解决这个问题:
- Express 服务器 - 使用 axios 帖子管理接收时的登录
请求将用户 ID 保存在会话中并保存访问令牌
在 cookie 中
- Vuex - 在我的 Nuxt 应用程序中轻松访问存储用户状态
- Nuxt 服务器中间件 - 用于检查身份验证状态
服务器上的用户。在会话中查找用户 ID 或
登录时创建的 cookie 中的访问令牌
可以在此GitHub repository 中找到包含此方案的有效运行示例的代码。
我还写了一个更详细的blog entry关于项目中使用的所有重要文件。