Google Recaptcha Enterprise远程服务器无法构建ApplicationDefaultCredentials求助
Google Recaptcha Enterprise 远程服务器抛出「Could not construct ApplicationDefaultCredentials」错误排查求助
本地环境使用测试Recaptcha Enterprise密钥一切正常,但部署到AWS Elastic Beanstalk的staging服务器后,无论使用测试密钥还是生产密钥,都会抛出相同错误:
Could not construct ApplicationDefaultCredentials
已完成的排查动作
- 前端表单已成功获取验证码令牌,令牌值可正常查看
- 服务账户的JSON凭证文件路径正确,且服务器可正常读取文件内容(已通过输出日志确认)
- Recaptcha后台已正确配置并允许当前staging服务器的子域名(Google未返回域名不被允许的提示)
- 项目ID已正确传递到客户端初始化代码中
代码示例
public static function createRecaptchaAssessment( string $siteKey, // 已确认参数存在 string $token, // 已确认参数存在 string $projectId // 已确认参数存在 ): Assessment { $options = [ 'keyFile' => config('services.google.app_credentials'), // 已确认配置路径正确且文件可读取 'projectID' => $projectId ]; $client = new RecaptchaEnterpriseServiceClient($options); // <-- 此处抛出ApplicationDefaultCredentials无法构造的异常 // 后续业务逻辑... }
补充环境信息
- Staging服务器部署在AWS Elastic Beanstalk,使用elasticbeanstalk.com下的子域名,站点通过.htpasswd设置了密码保护
- 已知elasticbeanstalk.com主域名可能被部分服务列入黑名单,但当前子域名已在Recaptcha后台配置允许,且Google未给出域名相关错误提示
- 已尝试创建全新的服务账户并配置「Recaptcha Enterprise Agent」权限,问题仍未解决
- 项目为PHP/Laravel 9,暂不认为框架版本是问题诱因
求各位提供其他可行的排查方向或解决方案。
内容的提问来源于stack exchange,提问作者Chuck Le Butt
相关产品推荐
相关产品推荐

