插件
应用检查
@nativescript/firebase-app-check
npm install @nativescript/firebase-app-check
注意
(iOS) 应用检查要求您将 ios/Podfile 中的最小 iOS 部署版本设置为 11.0 或更高。
它有什么作用
应用检查与其他 Firebase 服务协同工作,以帮助保护您的后端资源免遭滥用,例如计费欺诈或网络钓鱼。使用应用检查,运行您应用程序的设备将使用应用程序或设备证明提供者,该提供者证明以下一项或两项
请求来自您的真实应用程序 请求来自真实的、未经篡改的设备 此证明附加到您的应用程序向 Firebase 后端资源发出的每个请求。
此应用检查模块内置支持使用以下服务作为证明提供者
iOS 上的 DeviceCheck Android 上的 SafetyNet 应用检查目前适用于以下 Firebase 产品
实时数据库 云存储 云函数(可调用函数)官方 Firebase 应用检查文档 提供更多信息,包括关于 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 时,提供者保持不变,但令牌自动刷新设置将根据提供的参数进行更改。
您必须在调用任何 Firebase 后端服务之前调用 activate,才能使应用检查正常运行。
自定义提供者
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)
})
自动数据收集
应用检查有一个“tokenAutoRefreshEnabled”设置。这可能会导致应用检查在用户同意之前尝试远程应用检查令牌获取。在某些情况下,例如在第一次运行符合 GDPR 的应用程序时存在的那些情况,这可能是不可取的。
如果未设置,“tokenAutoRefreshEnabled”设置将默认使用应用程序的“自动数据收集”设置,该设置可能在 Info.plist 或 AndroidManifest.xml 中设置。
将应用检查令牌用于非 Firebase 服务
官方文档 展示了如何使用 getToken 访问当前应用检查令牌,然后在外部服务中验证它。
许可证
Apache 许可证 2.0 版