程式碼改動長這樣
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 轉過來,形態會很熟悉。