Ser*_*lla 19 recaptcha firebase
令人惊讶的是 - 当两者都是谷歌产品时更是如此 - 我没有关于如何将Recaptcha与Firebase集成的信息.它甚至可能吗?如果没有,我可以使用什么来验证没有身份验证的Firebase应用上的人类?
Ala*_*ger 11
这是一篇非常古老的帖子,但这是像我这样的谷歌搜索者的答案.它现在内置,超级易于设置:
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()
Run Code Online (Sandbox Code Playgroud)
正如tuananh提到的,请确保添加一个<div id="recaptcha"></div>.
我刚刚发布了一个教程博客,介绍如何使用Firebase Hosting为网站集成reCAPTCHA,以便为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.")
})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7922 次 |
| 最近记录: |