Laravel - 驗證碼(captcha)


  • 本人感覺用的比較好的驗證碼包,拿出來分享一下,傻瓜式教程,
  • 安裝步驟:
    • 首先,登錄網址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命令行中輸入如下命令:
      1
      php artisan vendor:publish
    • 進入config/captcha.php 文件,修改default 數組 可以對驗證碼進行樣式、數量、大小上的修改。
      復制代碼
      'default'   => [
      'length'    => 5,
      'width'     => 100,
      'height'    => 34,
      'quality'   => 90,
      ],
      復制代碼
  • 頁面中使用:
復制代碼
<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]);
            }
        }

 

 

 

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM