我已经按照appcheck设置guide的android,并遇到了以下问题时,试图从应用程序内获得令牌:FirebaseException: Error returned from API. code: 403 body: App attestation failed
调用appcheck时,如下所示:
//initialize on app-start
FirebaseApp.initializeApp(applicationContext)
FirebaseAppCheck.getInstance().apply {
installAppCheckProviderFactory(
PlayIntegrityAppCheckProviderFactory.getInstance()
)
}
//get token to then use in backend calls
firebaseAppCheck
.getAppCheckToken(true)
.addOnCompleteListener {
//do something with the token
}
由于HTTP 403(禁止)表明访问权限配置错误,我按照文档建议仔细检查了配置,并希望缩小问题所在的范围,当我发现自己处于以下(奇怪的)情况时:
- 从
PlayIntegrityAppCheckProviderFactory
更改为SafetyNetAppCheckProviderFactory
时,我能够检索到一个令牌,这使我假设不是firebase
访问失败,而是app integrity
访问失败。 - 使用来自play-integrity android库的
IntegrityManager
以独立的方式,我也能够得到一个令牌,这似乎与我目前的假设相冲突...
我正在使用
应用程序检查:com.google.firebase:firebase-appcheck-playintegrity:16.1.0
播放完整性独立:com.google.android.play:integrity:1.0.2
有人知道这是什么原因吗?👀
1条答案
按热度按时间3qpi33ja1#
如果您未通过Google Play分发,Play Integrity Provider将无法与您的Firebase应用一起使用。另一个问题可能是注册的SHA-256密钥可能与Google Play用于对您的应用进行签名的密钥不同。我将使用Google Play签名的SHA-256指纹验证您是否正在使用Play商店中的应用。