我只希望从应用程序中的代码调用我的云函数。
每个onCall()
云函数都提供context
变量,该变量提供了有关调用的方式或位置的信息:
exports.beginRound = functions.https.onCall(async (data, context) => {
if (context.auth.uid === null){ return 404 }
我的问题是:以上的行是否足以阻止在我的应用程序之外调用函数
只有在用户经过身份验证的情况下,它才应该让函数继续运行。只有当用户使用我的应用程序时,才应该对其进行身份验证,对吧?
我只是想澄清一下。
谢谢
以上的行是否足以阻止在我的应用程序之外调用函数?
您要检查的是,用户是否已使用项目启用的已启用身份验证提供程序进行了身份验证。没有什么比这更重要的了。
请求可能来自任何地方。它不一定来自你的应用程序。只要用户已经通过身份验证,并且有一个令牌可以通过启用的提供程序验证他们的身份,他们就可以调用此函数并绕过检查。
实际上,大多数访问都来自您的应用程序,但就安全性而言,请注意,从技术上讲,请求不一定来自客户端应用程序代码。应用程序代码从根本上讲是不安全的,可能会被泄露。该请求本可以使用公共API对用户进行身份验证,获取令牌,并使用可调用协议将其传递出去。