【问题标题】:Pass user auth to Firestore from Cloud functions将用户身份验证从 Cloud 函数传递到 Firestore
【发布时间】:2019-08-28 06:56:05
【问题描述】:

所以我正在尝试使用 Cloud 函数构建一个 http 端点。这个云函数只有在用户登录后才会调用。所以我可以传递用户令牌并在服务器端进行验证。我知道该怎么做。

我的 Firestore 集合也有安全规则,授权规则是使用 request.auth.uid 设置的。如果我使用 firebase web sdk,这也很有效。

但我的问题是 - 我如何通过云功能使用相同的授权规则?我不想为 http 端点单独重写我的身份验证逻辑。

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication google-cloud-functions firebase-security


    【解决方案1】:

    当您在函数中使用 admin sdk 时,对身份验证的检查看起来有些不同。只需观看来自 The Net Ninja 的 this 视频。他正在解释如何做到这一点。只需使用生成的令牌代替视频中使用的令牌。

    【讨论】:

    • 我看了视频,谢谢!这正是我希望避免的。他正在云函数中编写自定义授权逻辑。我希望所有授权逻辑都在安全规则中。
    • 但是如果您使用云功能,如果您使用 admin sdk,则会绕过安全规则。
    • 是的,我的问题是 - 我如何不绕过这些规则?有办法吗?
    • 不,没有。在 YouTube 上的一个 Firebase 视频中(我认为这是关于安全规则的视频),他们提到了这一点。
    【解决方案2】:

    安全规则仅适用于通过网络和移动 SDK 进行的访问。它不适用于使用任何服务器 SDK 的代码,包括 Firebase Admin SDK 以及您将与 Cloud Functions 一起使用的任何内容。在将数据添加到 Firestore 之前,您必须应用自己的逻辑来检查数据的有效性。实时数据库和云存储安全规则也是如此。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-16
    • 2018-05-02
    • 1970-01-01
    • 2020-01-27
    • 2021-10-02
    • 1970-01-01
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多