教你在自己的項(xiàng)目中使用簡書的的滑動驗(yàn)證碼

編者語

第一次看到簡書上的驗(yàn)證碼鸯屿,簡直高大上,很是羨慕把敢。但今日在看了laravelacadmy寄摆,laravel學(xué)院的時(shí)候,看到一片文章《極驗(yàn)(Geetest)修赞,讓驗(yàn)證更安全》婶恼,講的就是滑動驗(yàn)證碼,于是開始試驗(yàn)柏副,在入坑多次之后勾邦,終于試驗(yàn)成功。于是割择,就寫這份筆記眷篇,以便以后的使用。

開始

注冊極簡帳號:http://account.geetest.com/
添加一個驗(yàn)證铅歼,獲取一個ID和KEY公壤。

Laravel部署

  1. 安裝一個Laravel的極簡驗(yàn)證的集成包
composer require germey/geetest
  1. 注冊服務(wù)與設(shè)置別名(config/app.php
    于provider數(shù)組中添加服務(wù)
Germey\Geetest\GeetestServiceProvider::class
,

于aliases數(shù)組中添加,

'Geetest' => Germey\Geetest\Geetest::class,
  1. 配置ID和KEY
    可以在.env中配置椎椰,也可以在config/geetest.php中配置厦幅。筆者是在.env中添加了兩行信息,如下:
GEETEST_ID=獲取的ID
GEETEST_KEY=獲取的KEY
  1. 密鑰的生成地址
    驗(yàn)證碼的生成步驟:當(dāng)加載登陸頁面時(shí)慨飘,會自執(zhí)行ajax請求一個后臺的地址确憨,會在后臺生成一個密鑰,返回給前臺瓤的,前臺會依據(jù)此密鑰再去請求Geetest的一個接口休弃,依據(jù)Geetest返回的信息生成驗(yàn)證碼。
    這個后臺的地址默認(rèn)為/auth/geetest圈膏;所以你需要在Auth控制器中進(jìn)行相應(yīng)的配置塔猾。
# AuthController.php
use Germey\Geetest\CaptchaGeetest;
class AuthController extends Controller
{ 
    use CaptchaGeetest; 
    ......
}

有人可能納悶使用的CaptchaGeetest.php文件到底是什么?它其實(shí)就是一個可以繼承的一個方法稽坤,trait大大提高了代碼的重用性丈甸,他可以放在任何類中。如下所示尿褪。

# CaptchaGeetest.php
<?php namespace Germey\Geetest;
trait CaptchaGeetest
{
    /** 
     * Get geetest.
     */
    public function getGeetest()
    {   
        $user_id = "test";
        $status = Geetest::preProcess($user_id);
        session()->put('gtserver', $status);
        session()->put('user_id', $user_id);
        echo Geetest::getResponseStr();
    }   
}

請求地址/auth/geetest可以在config/geetest.php進(jìn)行查看和修改睦擂。

  1. 路由設(shè)置
    默認(rèn)請求地址為/auth/geetest,那么我們的路由就這樣設(shè)置杖玲。
Route::get('auth/geetest','Auth\AuthController@getGeetest');

當(dāng)然顿仇,我們也可以進(jìn)行更改默認(rèn)的訪問地址和默認(rèn)使用的控制器。

  1. 后臺的復(fù)核驗(yàn)證
    這個驗(yàn)證碼的驗(yàn)證會在前臺進(jìn)行自動驗(yàn)證摆马,這個無需管臼闻。但為了更安全,我們可以在后臺進(jìn)行二次驗(yàn)證囤采。筆者重新建立一個控制器些阅,用于做驗(yàn)證。
# 前臺模板
<div class="content">
<h1>極簡后端測試</h1>
    <form action="/login" method="post">
        <input name="_token" type="hidden" value="{{ csrf_token() }}">
        帳號:<input type="text" name="name"><br><br>
        密碼:<input type="password" name="password"><br><br>
        {!! Geetest::render('embed') !!} <br><br>    
        <input type="submit" value="submit">
    </form>
</div>
# LoginController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Config;
class LoginController extends Controller
{
    public function index(Request $request)
    {   
        $result = $this->validate(
                $request, 
                ['geetest_challenge' => 'geetest'], 
                ['geetest' => Config::get('geetest.server_fail_alert')]
       );
       if ($request) {
            return 'success';
        }   
    }   
}

利用 validate 方法斑唬,通過驗(yàn)證其中一個字段 geetest_challenge, 驗(yàn)證規(guī)則 geetest 就可以完成服務(wù)端的驗(yàn)證市埋。這樣就更保證了安全性。
在這里注意恕刘,由于多提交了幾個字段缤谎,如果想執(zhí)行 ORM 的批量插入修改操作時(shí),記得在 Model 里面屏蔽這幾個字段

protected $guarded = ['geetest_challenge', 'geetest_validate', 'geetest_seccode'];

當(dāng)然褐着,還包含多種驗(yàn)證坷澡,筆者沒再一一測試,如果想要更多學(xué)習(xí)含蓉,可以參考官方文檔频敛。

Paste_Image.png
Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末项郊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子斟赚,更是在濱河造成了極大的恐慌着降,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拗军,死亡現(xiàn)場離奇詭異任洞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)发侵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門交掏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人刃鳄,你說我怎么就攤上這事盅弛。” “怎么了叔锐?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵熊尉,是天一觀的道長。 經(jīng)常有香客問我掌腰,道長,這世上最難降的妖魔是什么张吉? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任齿梁,我火速辦了婚禮,結(jié)果婚禮上肮蛹,老公的妹妹穿的比我還像新娘勺择。我一直安慰自己,他們只是感情好伦忠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布省核。 她就那樣靜靜地躺著,像睡著了一般昆码。 火紅的嫁衣襯著肌膚如雪气忠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天赋咽,我揣著相機(jī)與錄音旧噪,去河邊找鬼。 笑死脓匿,一個胖子當(dāng)著我的面吹牛淘钟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陪毡,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼米母,長吁一口氣:“原來是場噩夢啊……” “哼勾扭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铁瞒,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤妙色,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后精拟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體燎斩,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年蜂绎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栅表。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡师枣,死狀恐怖怪瓶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情践美,我是刑警寧澤洗贰,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站陨倡,受9級特大地震影響敛滋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兴革,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一绎晃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧杂曲,春花似錦庶艾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棚饵,卻和暖如春煤裙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背噪漾。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工积暖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人怪与。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓夺刑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子遍愿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自王寶花 http://www.reibang.com/p/9dac08a5bb14 開始 注冊極簡帳號:htt...
    呦丶耍脾氣閱讀 2,532評論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理存淫,服務(wù)發(fā)現(xiàn),斷路器沼填,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • 過去做事情急桅咆,什么東西拿起來就用,不喜歡進(jìn)行系統(tǒng)性的學(xué)習(xí)坞笙,造成在使用過程中的錯誤和低效岩饼,現(xiàn)在感覺自己耐心多了,用之...
    馬文Marvin閱讀 1,972評論 0 10
  • 心情有點(diǎn)糟薛夜,真的被搞毛掉了籍茧。所以什么都不寫了。明天我要出去走走梯澜。 欲買桂花同載酒寞冯,終不似,少年游晚伙。
    將去君閱讀 204評論 0 0
  • “借助共享技術(shù)吮龄,最冷僻的興趣將不再孤獨(dú)∨亓疲”“左撇子紋身藝術(shù)家可以相互結(jié)識漓帚,共享彼此的故事和絕招∥绱牛”——《必然》 聯(lián)...
    冷藏幻想閱讀 236評論 0 0