【问题标题】:Firebase (client-side vs server-side)Firebase(客户端与服务器端)
【发布时间】:2019-03-18 12:27:59
【问题描述】:

我正在使用 django/python 在服务器端和 vue 在客户端构建 PWA,并且希望将 firebase 用作数据库并使用 firebase 身份验证。

经过深入研究后,我意识到我必须做出一些选择。

问题一:身份验证

  • 我可以在客户端或服务器端进行身份验证。哪一个最好(更安全)?

问题 2:数据库

  • 就 CRUDS 而言,我有点矛盾。我是否从客户端将所有数据写入 Firestore?
  • 我是否更愿意使用 api 与我的后端通信,然后从后端将数据写入 Firestore?这样做有什么安全隐患?

我应该只根据上下文使用两者吗?如果没有安全隐患,我会在服务器端进行身份验证客户端和 CRUDS。我想我还必须检查身份验证才能从后端写入数据库。

【问题讨论】:

  • 您的身份验证问题的答案如下。请为数据库问题创建一个单独的帖子,因为在 Stack Overflow 上建议将每个问题分成单独的帖子。我还建议在这个新问题中选择一个特定的用例。 Firestore 有客户端和服务器端 SDK 是有正当理由的。一些用例最好在客户端完成,其他用例在服务器中完成。如果有一个“最佳”方法,它只会为该方法提供一个 SDK。
  • 好的,酷豆。谢谢伙计 - 我大约一周前才加入堆栈溢出,所以我真的不太适应形式。
  • 我在 vue.js 和 firebase 上做过一门很棒的 Udemy 课程,可能很有用 udemy.com/build-web-apps-with-vuejs-firebase/learn/v4/content 这里一切都在客户端,几乎一切都在客户端
  • @WernerKotze 想知道,你有没有在另一篇文章中问过数据库问题?我有同样的问题..(编辑:没关系找到答案here)

标签: python django firebase vue.js firebase-authentication


【解决方案1】:

用户凭据的身份验证应始终在服务器上进行,因为它无法在客户端计算机上安全地完成。然而,Firebase 身份验证允许的是身份验证在 Google 的服务器上运行,而您可以通过简单的客户端 API 调用来控制它。

【讨论】:

  • 我明白这一点 - 但据我所知,我可以使用 firebase admin SDK 在服务器端进行用户管理。哪个更好?
  • Admin SDK 允许您创建用户帐户、删除用户帐户、更新他们的个人资料等。客户端 SDK 允许每个用户自己执行这些操作。您通常希望在客户端完成大部分可以在客户端完成的事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
  • 2011-08-07
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多