如何使用Google Client API for .NET验证Play Integrity API令牌
关于Play Integrity令牌验证的说明
你其实已经在使用验证令牌的API了——DecodeIntegrityToken接口本身就同时完成了令牌验证+解密的工作。
Google Play Integrity的设计逻辑是:只有当令牌合法(未被篡改、未过期、属于指定应用)时,Google服务器才会返回解密后的有效数据;如果令牌无效(比如伪造、篡改、包名不匹配、权限不对),这个接口会直接抛出错误,不会返回正常的解密结果。
验证的核心关键点:
- 你使用的
GoogleCredential必须是对应应用在Google Cloud Console中创建的服务账号密钥,且该服务账号已被授予Play Integrity API的访问权限 - 调用接口时传入的
packageName必须和生成令牌的应用包名完全一致 - 接口返回的
DecodeIntegrityTokenResponse中的字段(比如appIntegrity、deviceIntegrity)是验证通过后的可信数据,你可以根据业务需求进一步校验这些内容(比如检查设备是否合规、应用是否未被篡改)
你的代码实现是正确的,以下是整理后的代码和依赖包:
代码示例:
var credential = GoogleCredential.FromFile(jsonFile); var service = new PlayIntegrityService( new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "MyApp", }); var requestBody = new DecodeIntegrityTokenRequest { IntegrityToken = integrityToken }; var request = service.V1.DecodeIntegrityToken(requestBody, packageName); var result = request.Execute();
依赖包:
"Google.Apis" Version="1.60.0" "Google.Apis.Auth" Version="1.60.0" "Google.Apis.PlayIntegrity.v1" Version="1.60.0.2926"
内容的提问来源于stack exchange,提问作者kanils_
相关产品推荐
相关产品推荐

