代码改动长这样
Before — Arkose / FunCAPTCHA
<script src="https://YOUR_PUBLIC_KEY.arkoselabs.com/v2/YOUR_PUBLIC_KEY/api.js" data-callback="onSuccess" async defer></script>
<script>
function onSuccess(token) {
document.getElementById('arkose-token').value = token
}
</script>
<input type="hidden" id="arkose-token" name="arkose-token" />After — CaptchaLa
<button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>Before — Arkose server verify (Node)
const res = await fetch('https://verify-api.arkoselabs.com/api/v4/verify/', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
private_key: process.env.ARKOSE_PRIVATE_KEY,
session_token: req.body['arkose-token'],
}),
})
const data = await res.json()
if (data.session_details?.solved !== true) return res.status(400).json({ error: 'bot' })After — CaptchaLa server verify (Node)
const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })迁移步骤
- 1
注册并取得你的 App Key + Secret
创建免费 CaptchaLa 账号。不像 Arkose,没有 PoC、没有采购流程——定价公开且自助。免费方案足以涵盖初步测试。
- 2
移除 Arkose SDK 与回呼接线
删除 Arkose 的 script 标签、回呼函数,以及你从回呼填入的隐藏 input。CaptchaLa 使用简单的 div 占位——无需回呼接线。
- 3
加入 CaptchaLa 组件
在原本 Arkose 组件的位置放上我们的 div 与 script 标签。隐藏的 token 字段会自动以 captchala-token 填入,你不必手动管理。
- 4
更新服务器验证
把 Arkose 的 session_details.solved 检查换成我们的 valid 旗标(data.valid)。端点改为 apiv1.captcha.la/v1/validate。body 从 form-urlencoded 改为 JSON。
- 5
规划合约收尾
Arkose 合约通常是年约并自动续约。请留意合约中的取消窗口,并向法务/采购提前通知。多数团队在收尾期间会让两套并行 30 天。
常见问题
切换后会损失机器人检测准确度吗?
对多数工作负载而言,没有可量测的差异。Arkose 的验证在默认上刻意比我们更难,但他们拦下的机器人族群与我们拦下的,在典型产品流量上高度重叠。如果你是 Roblox/Microsoft 规模、面对指名道姓的对手,答案会更微妙——先来找我们聊聊。
合约重叠期该怎么处理?
在收尾期间让两套并行。表单 A 维持 Arkose;表单 B 切到 CaptchaLa。对比转化 + 机器人率。多数团队发现机器人率持平、用户摩擦率下降。然后在合约续约时退役 Arkose。
Arkose 的风险遥测/分析仪表板呢?
CaptchaLa 有自己的仪表板,提供可比的遥测——验证率、成功率、风险分数分布、地理分布。如果你是从 Arkose Insights 转过来,形态会很熟悉。