摘要:之前用的圖形驗證碼,現在改用網易云滑動驗證碼,效果如下這里基于來實現校驗驗證碼易盾驗證碼二次校驗構造函數驗證碼密鑰對密鑰對發起二次校驗請求二次校驗數據用戶信息公共參數計算參數簽名密鑰對請求參數參數排序發送請求請求參數新建
之前用的圖形驗證碼,現在改用網易云滑動驗證碼,效果如下 這里基于 laravel 來實現
校驗驗證碼vi AppServicesCaptchaVerifier.php captcha_id = $captcha_id; $this->secret_id = $secret_id; $this->secret_key = $secret_key; } /** * 發起二次校驗請求 * @param $validate 二次校驗數據 * @param $user 用戶信息 */ public function verify($validate, $user = "") { $params = array(); $params["captchaId"] = $this->captcha_id; $params["validate"] = $validate; $params["user"] = $user; // 公共參數 $params["secretId"] = $this->secret_id; $params["version"] = self::VERSION; $params["timestamp"] = sprintf("%d", round(microtime(true)*1000));// time in milliseconds $params["nonce"] = sprintf("%d", rand()); // random int $params["signature"] = $this->sign($this->secret_key, $params); $result = $this->send_http_request($params); return array_key_exists("result", $result) ? $result["result"] : false; } /** * 計算參數簽名 * @param $secret_key 密鑰對key * @param $params 請求參數 */ private function sign($secret_key, $params){ ksort($params); // 參數排序 $buff=""; foreach($params as $key=>$value){ $buff .=$key; $buff .=$value; } $buff .= $secret_key; return md5($buff); } /** * 發送http請求 * @param $params 請求參數 */ private function send_http_request($params){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, self::API_URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, self::API_TIMEOUT); curl_setopt($ch, CURLOPT_TIMEOUT, self::API_TIMEOUT); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); /* * Returns TRUE on success or FALSE on failure. * However, if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure. */ $result = curl_exec($ch); // var_dump($result); if(curl_errno($ch)){ $msg = curl_error($ch); curl_close($ch); return array("error"=>500, "msg"=>$msg, "result"=>false); }else{ curl_close($ch); return json_decode($result, true); } } }新建 ServiceProvider
vi AppProvidersCaptchaServiceProvider.php app["validator"]->extend("captcha", function($attribute, $value, $parameters) { return (new CaptchaVerifier(config("captcha.captcha.CAPTCHA_ID"),config("captcha.captcha.SECRET_ID"),config("captcha.captcha.SECRET_KEY")))->verify($value); }); } /** * Register any application services. * * This service provider is a great spot to register your various container * bindings with the application. As you can see, we are registering our * "Registrar" implementation here. You can add your own bindings too! */ public function register() { } } vi config/app.php "providers" => [ "AppProvidersCaptchaServiceProvider", ] vi config/captcha.php #聯系商務獲取秘鑰 "captcha"=>[ "CAPTCHA_ID" => "xxxxx", "SECRET_ID" => "xxxxx", "SECRET_KEY" => "xxxxx", ]調用
use IlluminateHttpRequest; public function postLogin($q Request){ $this->validate($q, [ "captcha" => "required|captcha", ]); return response()->json(["code" => "200", "msg" => "success"]) }
文檔地址
demo
類似的極驗驗證碼
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26170.html
摘要:以網易云易盾的驗證碼產品為例行為驗證碼具備運用大數據分析和機器學習模型進行優化升級的特點。路徑可以理解為驗證碼展示用戶行為分析機器人學習返回驗證結果機器模型升級的循環,保證了網易云易盾行為式驗證碼的不斷迭代升級。 當然有必要,這里我們來聊一個惡意短信驗證的案例,通過這個案例我們就能更好理解短信驗證碼和圖片驗證碼這兩者的關系了。 討論防止惡意短信驗證之前,我們先來看看什么是惡意短信驗證及...
摘要:在年,網易云易盾所服務的諸多客戶也陸續推出海外版產品,為更好地助力中國互聯網出海,易盾近日發布支持海外產品的多語言多民族內容安全服務,對英語泰語馬來語印尼語等海外語種地區提供策略支持。點擊免費體驗網易云易盾內容安全解決方案。 中國互聯網企業迎來大航海時代,越來越多的中國互聯網產品走向海外,特別是東南亞的印尼、泰國等移動互聯網新興市場。據《中國移動互聯網出海環境全揭秘報告》,2017年Q...
摘要:人工智能技術的初步應用隨著網絡強國戰略思想加強網絡內容建設等指導思想的推出和強化,內容安全已經成為互聯網企業生存和發展的生命線。 歡迎訪問網易云社區,了解更多網易技術產品運營經驗。 10月16日,2018年 AIIA人工智能開發者大會在蘇州舉辦。會議邀請了國內外人工智能產業知名人物、國家政府主管部門、行業內頂尖企業、知名學者代表、開源社區優秀貢獻團隊及個人,共同交流了技術現狀趨勢、生態...
閱讀 3072·2021-11-25 09:43
閱讀 2251·2021-09-07 10:28
閱讀 3544·2021-08-11 11:14
閱讀 2777·2019-08-30 13:49
閱讀 3544·2019-08-29 18:41
閱讀 1163·2019-08-29 11:26
閱讀 1976·2019-08-26 13:23
閱讀 3372·2019-08-26 10:43