Firebase AppCheck无法与PlayIntegrity提供程序配合使用

ffvjumwh  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(175)

我已经按照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
有人知道这是什么原因吗?👀

3qpi33ja

3qpi33ja1#

如果您未通过Google Play分发,Play Integrity Provider将无法与您的Firebase应用一起使用。另一个问题可能是注册的SHA-256密钥可能与Google Play用于对您的应用进行签名的密钥不同。我将使用Google Play签名的SHA-256指纹验证您是否正在使用Play商店中的应用。

相关问题