我已经强制执行了应用程序检查并在应用程序中对其进行了初始化,但即使我只是为了测试它而提供了错误的密钥,我仍然能够登录。我已经将 app-check 升级到更新的版本,但之前它还可以工作。
async getAppCheck() {
try {
const rnfbProvider = await firebase.appCheck().newReactNativeFirebaseAppCheckProvider();
rnfbProvider.configure({
android: {
provider: __DEV__ ? 'debug' : 'playIntegrity',
debugToken: 'a07b3e55-4cc3-414f-a498-ffb66bebda6c',
}
});
firebase.appCheck().initializeAppCheck({ provider: rnfbProvider, isTokenAutoRefreshEnabled: true })
.then((res) => {
console.log("initializeAppCheck: ", JSON.stringify(res));
}).catch((error) => {
console.error("app check failed: " + error);
});
} catch (e) {
console.error("Failed to initialize appCheck:", e);
}
}
initializeAppCheck 总是返回 null(无论是通过应用程序检查还是未通过)。它不应该返回一个指示是失败还是通过的值吗?
尽管这不是解决方案,但我能够使用
getToken()
函数获取令牌。然后我检查返回值是否为空,并允许用户基于该值进行身份验证。
通常情况下,如果应用程序检查失败,firebase 应该阻止用户进行身份验证。也许,如果我处于调试模式而不是生产模式,它仍然允许用户进行身份验证,我还没有在产品中测试过。但如果情况并非如此,那么这绝对是 Firebase 团队应该关注的一个错误。