我应该在哪里实施 Firebase 身份验证?

时间:2021-04-25 19:30:18

标签: reactjs firebase express firebase-authentication

我正在观看本教程,该教程使用云函数中的 firebase 客户端库来验证用户身份。我开始怀疑这是否是正确的方法。我应该在反应应用程序中进行所有身份验证吗?本教程解释说,在服务器端执行所有操作的好处是减少了用户为运行应用程序而必须下载的内容。

话虽如此,我很难让客户端库使用打字稿,这让我只想废弃它。我应该如何进行?

2 个答案:

答案 0 :(得分:2)

在后端托管身份验证(尤其是身份验证逻辑)通常是更好的做法,如果不是为了性能,绝对是出于安全原因。

也就是说,您可以避免使用云函数进行 Firebase 身份验证!这是您可能会喜欢 Fireship 的另一个超级简单视频教程:https://www.youtube.com/watch?v=zQyrwxMPm88Google Firebase YouTube channel 也有很多关于这个主题的视频。

当您希望在登录期间或之后在后端中执行并行操作时,云函数非常有用,而当您希望并行操作时,useAuthState() 反应钩子非常有用登录时或登录后在前端中使用。

答案 1 :(得分:2)

所以我认为在 Firebase 上解决这个问题的最佳方法是:

A) 为您的客户端使用 Auth Firebase SDK 创建用户并登录用户, B) 使用 Auth REST API

最终结果是一样的,你让你的用户进入 Firebase,你可以让他们登录并获得他们的身份验证令牌。 SDK 运行在客户端,REST API 运行在服务器上。完成后,您可以使用用户令牌并将其传递给云函数以执行您需要的任何操作并检查令牌有效性和服务器端权限。

在云功能上,您应该使用 Admin SDK,而不是客户端 SDK。并且 admin SDK 拥有所有权限。对于您不应该在云功能上使用客户端 SDK 的更具体的原因,是因为它保持状态。因此,使用客户端 sdk 服务器端调用您的云函数的 2 个用户将导致相同的用户令牌,这是一个错误。

希望我已经解决了你的问题?