Flarum
CaptchaLa 官方 Flarum 擴充。為論壇上最常被機器人盯上的動作 —— 註冊、登入、重設密碼與發文 —— 加上 CAPTCHA 驗證,並於後台提供依動作粒度的開關。
涵蓋範圍
下列每一項在 Admin → Extensions → CaptchaLa 中皆為獨立的開關。
- 註冊
- 登入
- 重設密碼
- 文章回覆
- 新建討論
- 個人資料編輯
透過 SSO / Auth Sync 提供者建立的已認證連線會被豁免 —— 詳見下方 SSO / Auth Sync。
安裝
1. 引入擴充
於 Flarum 安裝目錄下執行:
composer require captchala/flarum或在 Admin → Extension Manager 中將 captchala/flarum 貼到 Install 輸入框。擴充需要 Flarum ≥ 1.8 與 PHP ≥ 8.1。
2. 於後台啟用
開啟 Admin → Extensions,找到 CaptchaLa,點擊 Enable。
3. 設定
於擴充的設定面板中:
- 貼上來自
dash.captcha.la的 App Key 與 App Secret。 - 勾選要保護的動作。
- 儲存。
設定項目
設定儲存於 Flarum 標準 settings 資料表,使用 captchala.* 前綴。
| 設定項目 | 型別 | 預設值 | 說明 |
|---|---|---|---|
| App Key | string | — | 來自 CaptchaLa 控制台的公開金鑰(cl_pub_…)。必填。 |
| App Secret | string | — | 伺服端密鑰。必填。僅伺服端使用,用於呼叫 /v1/validate。 |
| 保護註冊 | bool | true | 註冊時觸發挑戰。 |
| 保護登入 | bool | false | 登入彈窗觸發挑戰。預設關閉,多數論壇透過限流保護登入。 |
| 保護重設密碼 | bool | true | 請求重設信件時觸發挑戰。 |
| 保護文章回覆 | bool | false | 發表回覆時觸發挑戰。預設關閉;若論壇承受壓力可啟用。 |
| 保護新建討論 | bool | false | 新建討論時觸發挑戰。 |
| 驗證模式 | enum | popup | 可選 popup、bind、embed。對應 Web SDK 的 product 選項。 |
| 主題 | enum | auto | light、dark,或 auto。 |
| 略過可信使用者 | bool | true | 標記為可信的使用者群組(如版主)會跳過挑戰。 |
SSO / Auth Sync
擴充會與 Flarum 標準的驗證鉤子(UserAuthenticated、第三方 Auth Sync 提供者、OAuth 橋接)協同運作。
- 使用者透過已認證的 SSO 連線進入時不會渲染挑戰 —— 擴充將該連線視為已驗證。
- 在 SSO 與本地登入混合的部署下,僅本地登入路徑會觸發挑戰。
- 「略過可信使用者」開關會疊加於此之上:即便走的是本地登入,可信使用者群組仍會跳過挑戰。
常見問題
擴充是免費的嗎?
是的。Composer 套件本身免費。CaptchaLa 免費方案包含每月 1,000 次驗證。
能擋住垃圾註冊嗎?
絕大多數自動化註冊會在第一輪風險評分時被挑戰或攔截。沒有任何 CAPTCHA 能 100% 阻擋 —— 但在我們的測試論壇中,啟用後垃圾註冊量大致下降一個數量級。
可以只在註冊時啟用嗎?
可以。每個動作都是獨立的開關。預設設定僅啟用註冊和重設密碼。
支援 SSO / Auth Sync 嗎?
支援。SSO / Auth Sync 提供者建立的連線會跳過挑戰。請見 SSO / Auth Sync。
是開源的嗎?
是的 —— PHP 擴充程式碼開源。驗證呼叫走 CaptchaLa 託管服務。
原始碼
- 擴充儲存庫:
github.com/Captcha-La/captchala-flarum - Packagist:
captchala/flarum - 相關文件:Web SDK · PHP 伺服端 SDK · API 參考