javascript - getaddrinfo ENOTFOUND www.google.com www.google.com:80
问题描述
我的问题是 我是否需要付费计划才能在 firebase 功能上使用 recaptcha?
我发现自己处于同样的情况:我需要使用带有 Google Recaptcha API 的 firebase 云功能。尽管如此,我还是遇到了getaddrinfo enotfound 错误。
这是我的代码:
exports.checkRecaptcha = functions.https.onRequest((req, res) => {
res.set('Access-Control-Allow-Origin', "*")
res.set('Access-Control-Allow-Methods', 'GET, POST')
const request = require('request');
const got = require('got');
var requestQuery = req.query;
var secret_key = '---------';
if( requestQuery != undefined && requestQuery != '' && requestQuery != null && requestQuery.response != undefined && requestQuery.response != '' && requestQuery.response != null ){
var response = requestQuery.response;
got('recaptcha.google.com/recaptcha/api/siteverify?secret='+ secret_key +'&response=' +response, { json: true }).then(response => {
console.log(response);
res.status(200).send("");
}).catch(error => {
console.log(error);
res.status(500).send(error);
});
}else{
res.send({"responseCode" : 1,"responseDesc" : "Failed captcha verification=> FOIRAGE"});
}
});
根据Doug Stevenson的说法,reCAPTCHA 服务器 API 已被列入白名单,因此我应该可以使用我的云功能访问它,但我没有。
解决方案
在 Cloud Functions 中获取 URL 时,您应该使用指定端点方案的完整 URL。Google 端点始终需要 HTTPS,这是 HTTP 的安全版本。
推荐阅读
- java - 如何为 Kotlin 扩展函数的接收者添加 KDoc 注释(Java 中的第一个参数,Kotlin 中的 `this`)
- android - 未找到处理 Intent { act=android.intent.action.PICK dat=content://media/external/video/media } 的 Activity
- c# - 使用 thead 标签时如何防止 PuppeteerSharp(HTML 到 PDF)在新页面中开始表格行
- r - 对于每个带有正则表达式的循环
- php - 在 PHP 中删除 cookie 中的会话 ID
- unity3d - 如何将 Input.GetAxis("Mouse X") 或 Input.GetAxis("Mouse Y") 转换为新的输入系统?
- c++ - C++ undefine 宏未按预期工作
- python - 设计建议从 Airflow 调用 Cloud Build 以执行带有 args 的 python 函数
- r - 如何在R中按日期范围拆分时间序列数据?
- python - 如何使用 Python 中的请求从 Reddit 页面的帖子中获取所有图像链接