令人惊讶的,更当两者都是谷歌的产品,有没有信息,我可以找到如何使用的Recaptcha集成火力地堡。它甚至有可能吗?如果没有,我可以使用什么来验证没有身份验证的Firebase应用上的人员?与使用验证码火力地堡
回答
我刚刚发布了一个tutorial blog关于如何将reCAPTCHA集成到网站中,该网站使用Firebase托管来为Firebase提供内容和云功能,以验证从reCAPTCHA收到的响应。函数本身看起来像这样,假设响应令牌通过查询字符串接受:
const functions = require('firebase-functions')
const rp = require('request-promise')
exports.checkRecaptcha = functions.https.onRequest((req, res) => {
const response = req.query.response
console.log("recaptcha response", response)
rp({
uri: 'https://recaptcha.google.com/recaptcha/api/siteverify',
method: 'POST',
formData: {
secret: 'PASTE_YOUR_SECRET_CODE_HERE',
response: response
},
json: true
}).then(result => {
console.log("recaptcha result", result)
if (result.success) {
res.send("You're good to go, human.")
}
else {
res.send("Recaptcha verification failed. Are you a robot?")
}
}).catch(reason => {
console.log("Recaptcha request failure", reason)
res.send("Recaptcha request failed.")
})
})
是否有任何替代品使用请求承诺。 'const rp = require('request-promise')'? –
如果我想在用户使用Facebook或Google的OAuth之前使用此功能,那该怎么办? –
只要您遵循reCAPTCHA API的规范,您就可以使用任何您喜欢的HTTP客户端库。你可以随时做到这一点。 –
这是一个很老的文章,但这里的同胞谷歌搜索和我一样的答案。它现在的内置,以及超级简单设置:
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha', {
'callback': (response) => {
// reCAPTCHA solved, allow signInWithPhoneNumber.
// ...
},
'expired-callback':() => {
// Response expired. Ask user to solve reCAPTCHA again.
// ...
}
})
window.recaptchaVerifier.render()
由于tuananh提到,一定要添加<div id="recaptcha"></div>
。
- 1. 火力地堡及验证码为createUserWithEmailAndPassword
- 2. 短信验证码,从火力地堡
- 3. 与火力地堡
- 4. 火力地堡飞镖与电子邮件和密码验证
- 5. 火力地堡谷歌验证错误
- 6. 火力地堡验证错误的Android
- 7. 火力地堡规则验证失败
- 8. 火力地堡验证不会在Safari
- 9. 火力地堡认证+火力地堡贮存在Unity3d
- 10. NullPointerException异常与火力地堡认证
- 11. 火力地堡认证与angularfire2
- 12. 火力地堡:使用comodin
- 13. 使用火力地堡与tvOS
- 14. jsonwebtoken.verify与火力地堡SDK
- 15. 火力地堡queryEqualToValue与childKey
- 16. 火力地堡规则验证并不验证数据
- 17. 火力地堡验证无法验证域
- 18. 火力地堡电话号码验证总是返回令牌
- 19. 火力地堡验证错误代码:AUTH/APP-未授权
- 20. 如何发送回令牌使用火力地堡验证
- 21. 火力地堡UI - 验证 - 使用自己的布局
- 22. 如何验证新安装使用火力地堡邀请
- 23. 火力地堡验证密码重置的iOS斯威夫特 - 更新火力地堡数据库
- 24. AngularJS路线,并与新的火力地堡验证
- 25. 上验证邮件到期日期与火力地堡
- 26. 验证始终活跃在离子与火力地堡
- 27. 在火力地堡
- 28. 火力地堡child_added
- 29. 从火力地堡
- 30. 火力地堡DatabaseReference
我目前也在研究这个。当我有东西的时候会回复一个答案或者更新。 –
我还没有开始对我的解决方案还没有,不过,我希望使用云功能的火力地堡到https://firebase.google.com/docs/functions/与整合的Recaptcha。这里也有类似的用例:https://github.com/firebase/functions-samples –
我不知道我是否太迟。现在有Firebase的云端功能。你可以在JavaScript上编写你自己的后端API。您不必直接从客户端调用Firebase数据库,而是通过客户端上的Firebase云端功能调用您的自定义API,并在那里验证reCaptcha并以管理员身份(firebase-admin)对数据库执行某些操作。我试过了,它工作正常。 – pupuupup