推薦一款漂亮的 Java 圖形驗證碼

Kyger發表於2023-03-10

效果展示:

undefined


專案整合:

package com.kyger;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
public class demo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public demo() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
    	// 編碼
    	request.setCharacterEncoding("utf-8");
    	response.setCharacterEncoding("utf-8");;
        response.setContentType("text/html; charset=utf-8");
        
        // 後臺處理
        if (request.getMethod().equals("POST")){
	        String html, appId, appSecret;
                        
            // 設定 AppId 及 AppSecret,在應用管理中獲取
            appId = "L001";
            appSecret = "W68oJi0iqT2C3BFRGirO1IaYCDvsYEED";
	        KgCaptchaSDK KgRequest = new KgCaptchaSDK(appId, appSecret);
				
	        // 前端驗證成功後頒發的 token,有效期為兩分鐘
			KgRequest.token = request.getParameter("kgCaptchaToken");
			// System.out.print(KgRequest.token);
	
	        // 填寫應用服務域名,在應用管理中獲取
			KgRequest.appCdn = "
	
	        // 請求超時時間,秒
			KgRequest.connectTimeout = 5;
			
	        // 使用者登入或嘗試帳號,當安全策略中的防控等級為3時必須填寫,一般情況下可以忽略
	        // 可以填寫使用者輸入的登入帳號(如:request.getParameter("username"),可攔截同一帳號多次嘗試等行為
			KgRequest.userId = "kgCaptchaDemo";
			
			// request 物件,當安全策略中的防控等級為3時必須填寫,一般情況下可以忽略
			KgRequest.request = request;
			// java 環境中無法提供 request 物件,請分別定義:clientIp|clientBrowser|domain 引數,即:
			// KgRequest.clientIp = "127.0.0.1";  // 填寫客戶端IP
			// KgRequest.clientBrowser = "";  // 客戶端瀏覽器資訊
			// KgRequest.domain = "你的授權域名或服務IP		
			
	        // 傳送驗證請求
			Map<String, String> requestResult = KgRequest.sendRequest();
	        if("0".toString().equals(requestResult.get("code"))) {
	            // 驗籤成功邏輯處理 ***
	
	            // 這裡做驗證透過後的資料處理
	            // 如登入/註冊場景,這裡通常查詢資料庫、校驗密碼、進行登入或註冊等動作處理
	            // 如簡訊場景,這裡可以開始向使用者傳送簡訊等動作處理
	            // ...
	
	            html = "<script>alert('驗證透過');history.back();</script>";
	        } else {
	            // 驗籤失敗邏輯處理
	        	html = "<script>alert(\"" + requestResult.get("msg") + " - " + requestResult.get("code") + "\");history.back();</script>";
	        }		
			
			response.getWriter().append(html);
        } else {
        	response.sendRedirect("index.html");
        }
		
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}


設定介面:

undefined


最後

SDK開源地址:github.com/KgCaptcha ,順便做了一個演示: w w w.kgcaptcha.com/demo/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70027530/viewspace-2938998/,如需轉載,請註明出處,否則將追究法律責任。

相關文章