我正在尝试在我的应用程序中实现SafetyNet。我也没有服务器,我使用的是Firebase Firestore和Firebase函数。
我对Firebase函数的了解非常有限。我想知道我是否可以以某种方式使用这些函数来帮助我进行SafetyNet认证。正如我所看到的,我应该在云上生成一个nonce,将这个nonce发送到应用程序,使用它进行验证,然后将它发送回云以验证完整性是否正确?
但我似乎找不到如何做到这一点的任何地方。有人能给我指正确的方向吗?
是
很抱歉让人兴奋,但这是可能的,因为几周前通过一个名为Firebase应用程序检查的新功能。
使用应用程序检查,您最终总是需要两个步骤:
- 在应用程序中使用证明提供者(如SafetyNet(,以便将有关应用程序的信息附加到它向Firebase发出的每个请求中
- 然后,在某个时间点,当您的应用程序请求中有足够多的附加了此信息时,请在"云功能"中检查应用程序信息,或启用签入其他支持的服务之一
如果你查看有关为云功能启用应用程序检查的文档,你会发现它主要归结为代码中的检查:
exports.yourCallableFunction = functions.https.onCall((data, context) => {
// context.app will be undefined if the request doesn't include a valid
// App Check token.
if (context.app == undefined) {
throw new functions.https.HttpsError(
'failed-precondition',
'The function must be called from an App Check verified app.')
}
// Your function logic follows.
});