驗證碼
驗證碼 是防止惡意破解密碼、刷票、論壇灌水、刷頁的手段。驗證碼有 多種型別。 本專案中我們將使用圖片驗證碼,其原理是讓使用者輸入一個扭曲變形的圖片上所顯示的文字或數字,扭曲變形是為了避免被光學字元識別軟體(OCR)自動辨識。由於計算機無法識別驗證碼的圖片,所以回答出問題的使用者就可以被認為是人類。
接下來我們將使用驗證碼來防衛的使用者註冊功能。
安裝擴充套件包
我們將以第三方擴充套件包 mews/captcha 作為基礎來實現 Laravel 中的驗證碼功能。
使用 Composer 安裝:
$ composer require "mews/captcha:~2.0"
$ php artisan vendor:publish --provider='Mews\Captcha\CaptchaServiceProvider'
附上生成配置的解釋
// 從 vendor 的擴充套件包中釋出任何可釋出的資源
// --force 重寫所有已存在的檔案
// --provider 指定你想要釋出資原始檔的服務提供者
// --tag 指定你想要釋出標記資源.
php artisan vendor:publish [--force] [--provider[="..."]] [--tag[="..."]]
我們可以開啟配置檔案,檢視其內容:
config/captcha.php
<?php
return [
'characters' => '2346789abcdefghjmnpqrtuxyzABCDEFGHJMNPQRTUXYZ',
'default' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
],
'flat' => [
'length' => 6,
'width' => 160,
'height' => 46,
'quality' => 90,
'lines' => 6,
'bgImage' => false,
'bgColor' => '#ecf2f4',
'fontColors'=> ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#795548'],
'contrast' => -5,
],
'mini' => [
'length' => 3,
'width' => 60,
'height' => 32,
],
'inverse' => [
'length' => 5,
'width' => 120,
'height' => 36,
'quality' => 90,
'sensitive' => true,
'angle' => 12,
'sharpen' => 10,
'blur' => 2,
'invert' => true,
'contrast' => -5,
]
];
可以看到這些配置選項都非常通俗易懂,characters 選項是用來顯示給使用者的所有字串,default, flat, mini, inverse 分別是定義的四種驗證碼型別,你可以在此修改對應選項自定義驗證碼的長度、背景顏色、文字顏色等屬性,在此不做過多敘述。