@nativescript/firebase-app-check
NativeScript Firebase - App Check
npm i --save @nativescript/firebase-app-check

@nativescript/firebase-app-check

npm install @nativescript/firebase-app-check

注意:(iOS)App Check 需要在 ios/Podfile 中设置最低 iOS 部署版本为 11.0 或更高。

它做什么

App Check 与其他 Firebase 服务一起工作,帮助保护您的后端资源免受滥用,例如账单欺诈或网络钓鱼。使用 App Check,运行您的应用程序的设备将使用一个应用程序或设备证明提供者,该提供者证明以下一个或两个

请求来自您的认证应用程序 请求来自一个认证的、未被篡改的设备 这种证明附加到您的应用程序向 Firebase 后端资源发出的每个请求。

image

此 App Check 模块内置了对以下服务作为证明提供者的支持

iOS 的 DeviceCheck Android 的 SafetyNet App Check 当前支持以下 Firebase 产品

实时数据库 云存储 云函数(可调用的函数)官方 Firebase App Check 文档(https://firebase.google.com/docs/app-check)提供了更多信息,包括关于 iOS AppAttest 提供者和测试/ CI 集成的信息,值得一读。

用法

激活

import { firebase } from '@nativescript/firebase-core';
import { AppCheck } from '@nativescript/firebase-app-check';

AppCheck.setProviderFactory(); // call before the fb app is initialized
firebase.initializeApp()
.then(app =>{
firebase().appCheck().activate(true);
})

唯一可配置的是令牌自动刷新。当您调用 activate 时,提供者保持不变,但令牌自动刷新设置将根据提供的参数进行更改。

您必须在调用任何 App Check 后端服务之前调用 activate,以便 App Check 能够正常工作。

自定义提供者

import { firebase } from '@nativescript/firebase-core';
import { AppCheck, AppCheckProviderFactory, AppCheckProvider } from '@nativescript/firebase-app-check';


class AppCheckProviderFactoryImpl extends AppCheckProviderFactory {
createProvider(app: FirebaseApp) {
// we could potentiall do something with the app
return new AppCheckProviderImpl();
}
}


class AppCheckProviderImpl extends AppCheckProvider {
getToken(done){
// do some call probably http
// finally call done when you're ready passing in a token along with the expirationDate
done({
token: someToken,
expirationDate: someDate
})
}
}



AppCheck.setProviderFactory(new AppCheckProviderFactoryImpl()); // call before the fb app is initialized
firebase.initializeApp()
.then(app =>{
firebase().appCheck().activate(true);
})

自动数据收集

App Check 有一个 "tokenAutoRefreshEnabled" 设置。这可能导致 App Check 在用户同意之前尝试远程 App Check 令牌获取。在某些场景中,例如第一次运行的符合 GDPR 的应用程序,这可能是不可取的。

如果未设置,则 "tokenAutoRefreshEnabled" 设置将依赖于应用程序的 "自动数据收集" 设置,该设置可能在 Info.plist 或 AndroidManifest.xml 中设置。

使用 App Check 令牌访问非 Firebase 服务

官方文档(https://firebase.google.com/docs/app-check/web/custom-resource)展示了如何使用 getToken 来访问当前的 App Check 令牌,并在外部服务中进行验证。

许可

Apache 许可协议版本 2.0