求Google.Apis.Firebaseappcheck.v1的C#(.NET4.8)示例及reCAPTCHA v3入门指引
.NET Framework 4.8 下 Firebase App Check 与 reCAPTCHA v3 入门指引
一、Google.Apis.Firebaseappcheck.v1 库的 C# 示例代码
1. 安装依赖包
通过NuGet包管理器安装以下两个核心包:
Google.Apis.Firebaseappcheck.v1Google.Apis.Auth.OAuth2
2. 初始化服务客户端
通过服务账号密钥完成身份认证,初始化Firebase App Check服务实例:
using Google.Apis.Auth.OAuth2; using Google.Apis.Firebaseappcheck.v1; using Google.Apis.Services; using Google.Apis.Firebaseappcheck.v1.Data; // 加载本地服务账号JSON密钥文件 var credential = GoogleCredential.FromFile("service-account-key.json") .CreateScoped(FirebaseappcheckService.Scope.FirebaseCheck); // 初始化服务 var appCheckService = new FirebaseappcheckService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Your-App-Name" });
3. 创建reCAPTCHA v3配置
通过API创建reCAPTCHA v3类型的App Check验证配置:
// 构建reCAPTCHA v3配置对象 var recaptchaConfig = new GoogleFirebaseAppcheckV1RecaptchaV3Config { DisplayName = "Web App reCAPTCHA V3 Config", SiteKey = "your-recaptcha-v3-site-key", SecretKey = "your-recaptcha-v3-secret-key" }; // 目标资源路径,格式:projects/{project-id}/apps/{app-id} var parentResource = "projects/your-firebase-project-id/apps/your-app-id"; // 发送创建请求 var createRequest = appCheckService.Projects.Apps.RecaptchaV3Configs.Create(recaptchaConfig, parentResource); var createdConfig = createRequest.Execute(); Console.WriteLine($"reCAPTCHA v3配置创建成功,ID: {createdConfig.Name}");
4. 验证客户端App Check令牌
服务器端核心场景:校验客户端传来的App Check令牌有效性:
// 构建验证请求 var verifyRequest = new GoogleFirebaseAppcheckV1VerifyAppCheckTokenRequest { AppCheckToken = "client-provided-app-check-token" }; // 验证接口路径,格式:projects/{project-id}/apps/{app-id}:verifyAppCheckToken var verifyPath = "projects/your-firebase-project-id/apps/your-app-id:verifyAppCheckToken"; // 执行验证 var verifyResponse = appCheckService.Projects.Apps.VerifyAppCheckToken(verifyRequest, verifyPath).Execute(); if (verifyResponse.Valid) { Console.WriteLine("App Check令牌验证通过"); // 获取令牌附加信息 Console.WriteLine($"关联应用ID: {verifyResponse.AppId}"); Console.WriteLine($"令牌过期时间: {verifyResponse.ExpireTime}"); // 继续处理业务逻辑 } else { Console.WriteLine("App Check令牌无效或已过期"); // 返回错误响应给客户端 }
二、reCAPTCHA v3 入门指导(结合Firebase App Check)
1. 获取reCAPTCHA v3密钥
- 登录Google reCAPTCHA控制台,注册应用并选择
reCAPTCHA v3类型,填写允许的域名。 - 完成注册后获取
Site Key(客户端使用)和Secret Key(服务器/配置使用)。
2. Firebase控制台配置App Check
- 打开Firebase控制台,进入目标项目的
App Check模块。 - 为你的应用(Web/移动端)启用App Check,选择
reCAPTCHA v3作为验证提供者,填入已获取的Site Key和Secret Key。
3. 客户端集成(Web应用示例)
- 引入reCAPTCHA脚本:
<script src="https://www.google.com/recaptcha/api.js?render=your-recaptcha-site-key"></script> - 调用reCAPTCHA并获取App Check令牌:
grecaptcha.ready(() => { grecaptcha.execute('your-recaptcha-site-key', { action: 'app-check' }) .then(recaptchaToken => { // 激活Firebase App Check firebase.appCheck().activate( 'your-recaptcha-site-key', { provider: 'recaptchaV3', token: recaptchaToken } ); // 获取令牌并发送到服务器 firebase.appCheck().getToken().then(result => { const appCheckToken = result.token; // 将token通过API请求发送至.NET后端 }); }); });
4. 后端验证流程
- 客户端请求时将App Check令牌放在请求头或参数中传递。
- 后端使用第一部分的验证代码校验令牌,仅在验证通过后处理业务请求。
注意事项
- 确保服务账号拥有
Firebase App Check Admin角色,否则无法调用API。 - App Check令牌默认有效期1小时,Firebase客户端SDK会自动刷新令牌。
- 若遇.NET Framework兼容性问题,可尝试降级
Google.Apis.Firebaseappcheck.v1包至稳定版本。
内容的提问来源于stack exchange,提问作者Vladimir K
相关产品推荐
相关产品推荐

