Tome Chen

Tome Chen

如何在Typecho下添加hCaptcha驗證

因為眾所周知的原因,Google 的 reCAPTCHA 在中國地區完全無法正常使用,所以我將目光轉向了hChaptcha


第一步#

註冊,你可以使用 Github 或 Google 登錄,也可以註冊賬戶
2023-05-28T01:39:48.png

註冊完成後你可以獲得你的 secret 密鑰

第二步#

進入 Dashboard,點擊網站,裡邊會有一個預置的,點擊旁邊的灰色按鈕,在這裡
2023-05-28T01:44:12.png

添加你的網址,順便記下 site 密鑰

第三步#

更改博客目錄 /var/Widget下的 Login.php,在頂部添加以下內容

class Paul_GCaptcha {
public static $success, $failed;

// 發送驗證信息
public static function send($post_data) {
    $postdata = http_build_query($post_data);
    $options = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'Content-type:application/x-www-form-urlencoded',
            'content' => $postdata,
            'timeout' => 15 * 60 // 超時時間
        )
    );
    $context = stream_context_create($options);  
    $result = file_get_contents("https://hcaptcha.com/siteverify", false, $context);
    return $result;
}

// 判斷驗證狀況
public static function check(){
    if($_POST["h-captcha-response"]){
        $data = array(
            'secret' => '這裡是你的SECRET密鑰',
            'response' => $_POST["h-captcha-response"] // 接收用戶提交的驗證數據
        );

        $result = self::send($data);
        $result = json_decode($result, true);
        $result = $result["success"];

        if($result == true){
            return true; // 驗證成功
        }
        else{
            return false; // 驗證失敗
        }
    }
    else{
        return false; // 用戶沒有提交到驗證信息
    }
}

之後在博客目錄 /admin下的 login.php 中,合適的位置添加

 <script src="https://js.hcaptcha.com/1/api.js" async defer></script>
 <div class="h-captcha" data-sitekey="你的SITE密鑰"></div>

在登陸頁面下看到 hCaptcha 就完成了
2023-05-28T02:01:28.png

如果你使用 handsome 主題,要在後臺外觀設置 → 開發者設置 → 自定義輸出 body 尾部的 HTML 代碼 中輸入以下內容

    <script src="https://js.hcaptcha.com/1/api.js" async defer></script>

然後在 /usr/themes/handsome/component/headnav.php 中大約 369 行下面另起一行添加以下內容(Handsome 9.0.2)

<div class="h-captcha" style="transform: scale(0.827); -webkit-transform: scale(0.827); transform-origin: 0 0; -webkit-transform-origin: 0 0;" data-sitekey="你的SITE密鑰"></div>

2023-05-28T02:38:06.png
至此,hCaptcha 在 Typecho 的部署大功告成!

後言#

文章代碼其實是從BLxcwg666這裡來的,但是原文是 reCAPTCHA 教程,所以又自己稍加修改而成

此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.nekotc.cn/posts/default/2


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。