【Laravel】教你在自己的項目中使用簡書的的滑動驗證碼

轉(zhuǎn)自王寶花 http://www.reibang.com/p/9dac08a5bb14

開始

注冊極簡帳號:http://account.geetest.com/
添加一個驗證萨脑,獲取一個ID和KEY赴恨。

Laravel部署

  1. 安裝一個Laravel的極簡驗證的集成包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. 密鑰的生成
    地址驗證碼的生成步驟:當加載登陸頁面時漱病,會自執(zhí)行ajax請求一個后臺的地址,會在后臺生成一個密鑰把曼,返回給前臺杨帽,前臺會依據(jù)此密鑰再去請求Geetest的一個接口,依據(jù)Geetest
    返回的信息生成驗證碼嗤军。這個后臺的地址默認為/auth/geetest
    注盈;所以你需要在Auth控制器中進行相應(yīng)的配置。
# AuthController.phpuse Germey\Geetest\CaptchaGeetest;
class AuthController extends Controller
{
 use CaptchaGeetest;
 ......
}

有人可能納悶使用的CaptchaGeetest.php文件到底是什么叙赚?它其實就是一個可以繼承的一個方法老客,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進行查看和修改鳍鸵。

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

當然偿乖,我們也可以進行更改默認的訪問地址和默認使用的控制器。

  1. 后臺的復核驗證
    這個驗證碼的驗證會在前臺進行自動驗證哲嘲,這個無需管贪薪。但為了更安全,我們可以在后臺進行二次驗證眠副。筆者重新建立一個控制器画切,用于做驗證。
# 前臺模板
<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 方法侦啸,通過驗證其中一個字段 geetest_challenge, 驗證規(guī)則 geetest 就可以完成服務(wù)端的驗證槽唾。這樣就更保證了安全性。
在這里注意光涂,由于多提交了幾個字段庞萍,如果想執(zhí)行 ORM 的批量插入修改操作時,記得在 Model 里面屏蔽這幾個字段

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

當然忘闻,還包含多種驗證钝计,筆者沒再一一測試,如果想要更多學習齐佳,可以參考官方文檔私恬。

原文鏈接:http://www.reibang.com/p/9dac08a5bb14著作權(quán)歸作者所有,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)炼吴,并標注“簡書作者”本鸣。

2041409-033eb60749641160.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市硅蹦,隨后出現(xiàn)的幾起案子荣德,更是在濱河造成了極大的恐慌,老刑警劉巖童芹,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件涮瞻,死亡現(xiàn)場離奇詭異,居然都是意外死亡假褪,警方通過查閱死者的電腦和手機署咽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來生音,“玉大人宁否,你說我怎么就攤上這事窒升。” “怎么了家淤?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵异剥,是天一觀的道長。 經(jīng)常有香客問我絮重,道長,這世上最難降的妖魔是什么歹苦? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任青伤,我火速辦了婚禮,結(jié)果婚禮上殴瘦,老公的妹妹穿的比我還像新娘狠角。我一直安慰自己,他們只是感情好蚪腋,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布丰歌。 她就那樣靜靜地躺著,像睡著了一般屉凯。 火紅的嫁衣襯著肌膚如雪立帖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天悠砚,我揣著相機與錄音晓勇,去河邊找鬼。 笑死灌旧,一個胖子當著我的面吹牛绑咱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枢泰,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼描融,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了衡蚂?” 一聲冷哼從身側(cè)響起窿克,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讳窟,沒想到半個月后让歼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡丽啡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年谋右,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片补箍。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡改执,死狀恐怖啸蜜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情辈挂,我是刑警寧澤衬横,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站终蒂,受9級特大地震影響蜂林,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拇泣,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一噪叙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧霉翔,春花似錦睁蕾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至序芦,卻和暖如春臭杰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背芝加。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工硅卢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人藏杖。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓将塑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝌麸。 傳聞我的和親對象是個殘疾皇子点寥,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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

  • 編者語 第一次看到簡書上的驗證碼,簡直高大上来吩,很是羨慕敢辩。但今日在看了laravelacadmy,laravel學院...
    王寶花閱讀 7,363評論 0 7
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理弟疆,服務(wù)發(fā)現(xiàn)戚长,斷路器,智...
    卡卡羅2017閱讀 134,659評論 18 139
  • 22年12月更新:個人網(wǎng)站關(guān)停怠苔,如果仍舊對舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,184評論 22 257
  • 簡介 laravel 使實施認證的變得非常簡單同廉,事實上,它提供了非常全面的配置項以適應(yīng)應(yīng)用的業(yè)務(wù)。認證的配置文件存...
    Dearmadman閱讀 6,135評論 2 13
  • 經(jīng)常接受心靈雞湯的洗禮有時候真的會有些作用比如那個蹲的越低跳的就越高的案例就讓我更好的堅持下來雖然不知道未來到底如...
    承謙閱讀 229評論 0 0