- 本人感覺用的比較好的驗證碼包,拿出來分享一下,傻瓜式教程,
- 安裝步驟:
- 首先,登錄網址packagist.org查找
laravel captcha
,找到mews/captcha
,根據packagist上的使用方法一步步來實現驗證碼的安裝。 - composer安裝:
1
composer require mews/captcha
- 注冊
providers (config/app.php)
,在這個數組中的最后追加如下代碼:
Mews\Captcha\CaptchaServiceProvider::
class
,
- 注冊
aliases (config/app.php)
,在這個數組中的最后追加如下代碼:
'Captcha'
=> Mews\Captcha\Facades\Captcha::
class
,
- 生成配置文件,在Composer命令行中輸入如下命令:
1php artisan vendor:publish
- 進入
config/captcha.php
文件,修改default
數組 可以對驗證碼進行樣式、數量、大小上的修改。'default' => [ 'length' => 5, 'width' => 100, 'height' => 34, 'quality' => 90, ],
- 首先,登錄網址packagist.org查找
- 頁面中使用:
<div class="row"> <div class="col-md-8"> <input type="text" class="form-control {{$errors->has('captcha')?'parsley-error':''}}" name="captcha" placeholder="captcha"> </div> <div class="col-md-4"> <img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src='{{captcha_src()}}'+Math.random()"> </div> @if($errors->has('captcha')) <div class="col-md-12"> <p class="text-danger text-left"><strong>{{$errors->first('captcha')}}</strong></p> </div> @endif </div>
- 點擊圖片刷新,如下代碼:
<img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src='{{captcha_src()}}'+Math.random()">
-
-
重寫AuthController 登錄驗證方法,並自定義提示信息:
-
首先要引入如下代碼:
use Illuminate\Http\Request;
- 重寫validateLogin方法:
protected function validateLogin(Request $request){ $this->validate($request, [ $this->loginUsername() => 'required', 'password' => 'required', 'captcha' => 'required|captcha', //注意這里驗證碼的驗證在這里,不用寫邏輯 ],[ 'captcha.required' => trans('validation.required'), 'captcha.captcha' => trans('validation.captcha'), ]); }
-
- 字體庫的下載與切換:
- 首先需要下載字體庫
- 下載完成后,將壓縮包中 src/zh-CN 文件夾拷貝到項目目錄的
resources/lang
文件夾下。 - 修改
config->app.php
文件,修改代碼如下:'locale' => 'zh-CN',
- 由於
captcha
在中文包中沒有中文解釋,所以需要手動添加中文解釋,具體操作如下: - 打開
resources/zh-CN/validation.php
,在總數組中追加如下鍵值對:'captcha' => ':attribute 不正確。',
- 在 attributes 數組中追加如下鍵值對:
'captcha' => '驗證碼',
https://laravel-china.org/articles/6736/laravel-code-captcha
轉載 :https://www.cnblogs.com/lxwphp/p/9524013.html
public function login(Request $request){
if ($request->isMethod('post')){
//判斷驗證碼
$validator = \Validator::make($request->all(),
//code是表單字段名,captcha為驗證規則
['code' => 'required|captcha'],
['captcha' => ':attribute錯誤'],
['code' => '驗證碼']
);
if($validator->fails()){
$errors = $validator->errors()->all();
foreach($errors as $error){
return ['error', $error];
}
}
}
}
if($validator->fails()){
$errors = $validator->errors()->all();
foreach($errors as $error){
return json_encode(['status'=>400,'msg'=>$error]);
}
}